当我尝试将值转换器从定义的枚举状态绑定到刷子时,我的 XAML 设计器中出现错误:
未找到“OKStatus”资源。
该应用程序在运行时运行良好,但我无法在设计器中看到我的 GUI。我的资源在运行时读取的 color.xaml 文件中定义。所有代码都在同一个命名空间中
我的 XAML:
xmlns:config="clr-命名空间:App.MyNamespace"
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="c:\Skins\Colors.xaml" />
<ResourceDictionary Source="c:\Skins\Common.xaml" />
</ResourceDictionary.MergedDictionaries>
<config:StatusConverter x:Key="StateConverter" />
<config:BoolConverter x:Key="BoolConverter" />
<config:BooleanConverter x:Key="BooleanConverter" />
</ResourceDictionary>
</UserControl.Resources>
和
地位
我的转换器:
[ValueConversion(typeof(bool), typeof(Brush))]
public class BoolConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
bool state = (bool)value;
FrameworkElement FrameElem = new FrameworkElement();
if (state == true)
return (FrameElem.FindResource("OKStatus") as Brush);
else
return (FrameElem.FindResource("ErrorStatus") as Brush);
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
return null;
}
}
在这段代码中,我猜 frameElem 不会知道我定义的资源,所以我需要一种方法来在设计期间访问我的资源。这可能吗?