定義された列挙型ステータスからブラシにvalueconverterをバインドしようとすると、XAMLデザイナーでエラーが発生します。
「OKStatus」リソースが見つかりません。
アプリケーションは実行時に正常に動作しますが、デザイナーでGUIを表示できません。私のリソースは、実行時に読み取られるcolor.xamlファイルで定義されています。すべてのコードは同じ名前空間内にあります
私のXAML:
xmlns:config = "clr-namespace: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は私が定義したリソースについての知識を持っていないので、設計中にリソースにアクセスする方法が必要です。これは可能ですか?