我有一个包含 2 个项目的 WPF 解决方案,第一个(ResourcesLibrary)包含通用样式和通用资源。另一个是 WPF 应用程序。
我在 ResourcesLibrary generic.xaml文件中为 DataGridRows 创建了一个样式:
<Style x:Key="DGRowStyle" TargetType="{x:Type DataGridRow}">
<Setter Property="ValidationErrorTemplate">
<Setter.Value>
<ControlTemplate>
<Image Source="/Resources/stop.png"
ToolTip = "{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGridRow}},
Path=(Validation.Errors),
Converter={StaticResource errorConverter]}}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
我将 .cs 转换器文件添加到 ResourcesLibrary 项目:
namespace ResourceLibrary
{
public class ErrorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var errors = value as ReadOnlyObservableCollection<ValidationError>;
if (errors == null)
return "";
return errors.Count > 0 ? errors[0].ErrorContent : "";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
并添加了引用和静态资源:
xmlns:my="clr-namespace:ResourceLibrary"
<!-- CONVERTERS -->
<my:ErrorConverter x:Key="errorConverter" />
但是在运行时,在主项目中,我使用 ResourcesLibrary 中定义的 DataGridRow 样式时出现此错误:
{"找不到名为 'errorConverter]' 的资源。资源名称区分大小写。"}
我是否需要在我的解决方案中为我将使用的转换器添加另一个项目?