當我嘗試將valueconverter從定義枚舉狀態結合到刷皈依的結果,我得到一個錯誤,在我的XAML設計:使用資源的綁定轉換器
沒有發現「OKStatus」資源。
該應用程序運行良好,但我無法在設計器中看到我的GUI。 我的資源是在運行時讀取的color.xaml文件中定義的。 所有的代碼都是相同的命名空間
我的XAML中:
的xmlns:配置= 「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>
和
狀態
My conver之三:
[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不會有我定義我猜資源的任何知識,所以我需要一種方式來獲得設計時訪問我的資源。 這可能嗎?
我個人與Joel的解決方案一起上面,因爲它似乎更少計算密集型。 TryFindResource會在我的應用程序中花費我不得不修改巨大數據網格中的項目顏色。 – Eternal21 2014-03-04 20:56:18