工作框架;将简单字符串转换为我的 TextBlock 文本失败,由于找不到名为的资源

WPF; Convert simple string into my TextBlock Text failed and due to Cannot find resource named

所以我有这个 TextBlock:

<TextBlock 
    Name="tbVersion"
    Text="{Binding Converter={StaticResource TextConverter}}"/>

转换器:

public class TextConverter : IValueConverter
{

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return "bla bla";
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

我在尝试 运行 我的应用程序时遇到了这个错误:

{"Cannot find resource named 'TextConverter'. Resource names are case sensitive."}

虽然根本没有编译器错误,但我声明:

<Window.Resources>
    <Convertors:TextConverter x:Key="TextConverter"/>
</Window.Resources>

好的,所以我尝试使用另一个 Converter 从另一个 TextBlobk 工作,但仍然出现无法找到资源的错误,尽管它存在(并且像我提到的那样工作......)所以也许因为我的 TextBlobkDataTemplate 里面:

<Controls:MetroWindow.TitleTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <TextBlock 
                Name="tbVersion"
                Text="{Binding Converter={StaticResource TextConverter}}"/>
        </StackPanel>
    </DataTemplate>
</Controls:MetroWindow.TitleTemplate>

正如您从图片中看到的那样,我完全使用了您的代码,并且工作正常。

所以您可能已将转换器添加到 Window.Resources 但您在不同的 ResourceDictionary 中使用它?

如果你想让它们在全球范围内可用,你应该将它们添加到 App.xaml,或者以编程方式添加到 Application.Current.ResourceDictionary

编辑:

尝试将转换器添加到 DataTemplate.Resources