工作框架;将简单字符串转换为我的 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
工作,但仍然出现无法找到资源的错误,尽管它存在(并且像我提到的那样工作......)所以也许因为我的 TextBlobk
在 DataTemplate
里面:
<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
所以我有这个 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
工作,但仍然出现无法找到资源的错误,尽管它存在(并且像我提到的那样工作......)所以也许因为我的 TextBlobk
在 DataTemplate
里面:
<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