Cuando trato de enlazar un valueconverter de un Estado enumeración definido para cepillar, me sale un error en mi diseñador XAML:Uso de recursos como resultado convertion en un convertidor se unen
recursos 'OKStatus' not found.
La aplicación funciona bien en tiempo de ejecución, pero no puedo ver mi GUI en el diseñador. Mis recursos se definen en el archivo color.xaml, que se lee en tiempo de ejecución. Todo el código se encuentra dentro del mismo espacio de nombres
Mi XAML:
xmlns: config = "CLR-espacio de nombres: 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>
y
Estado
Mi conver ter:
[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;
}
}
En este código, el frameElem no tendrá ningún conocimiento de los recursos que he definido supongo, así que necesito una manera de obtener acceso a mis recursos durante el diseño. ¿Esto es posible?
Personalmente fui con la solución de Joel anterior, ya que parece mucho menos computacionalmente intensiva. TryFindResource pasaría factura en mi aplicación donde tuve que modificar los colores de los elementos en una gran cuadrícula de datos. – Eternal21