【问题标题】:Including a custom converter from a different assembly包括来自不同程序集的自定义转换器
【发布时间】:2011-03-22 00:49:01
【问题描述】:

我正在尝试从不同的程序集实现自定义转换器,但它似乎被忽略了。我已经把它打死了,看不到我的错误,所以也许一些 XAML 忍者可以帮忙。这是相关代码...

 xmlns:converters="clr-namespace:Shared.Converters;assembly=Shared"

还有资源字典……

<ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/Shared;component/Styles.xaml"/>
            <ResourceDictionary>
                <converters:SaveStatusConverter x:Key="saveStateConverter" />
            </ResourceDictionary>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>

这是整个转换器本身。

命名空间 Shared.Converters { 公共类 SaveStatusConverter : IValueConverter {

public object Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{

  bool? buttonState = (bool?)value;
  Uri resourceLocater = new Uri("/Shared;component/Styles.xaml", System.UriKind.Relative);
  ResourceDictionary resourceDictionary = (ResourceDictionary)Application.LoadComponent(resourceLocater);
  if(buttonState == true)
    return resourceDictionary["GreenDot"] as Style;
  if (buttonState == false)
    return resourceDictionary["RedDot"] as Style;
  return resourceDictionary["GreyDot"] as Style;

}

public object ConvertBack(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
  throw new System.NotImplementedException();
}

} }

这是我的实现......

<ContentControl Style="{Binding Path=SaveState, Converter={StaticResource saveStateConverter}}"/>

我知道样式有效...这不是问题,我认为转换器也很好,它必须与我尝试调用它的方式有关,尽管我看不到问题。 ..

提前致谢。

【问题讨论】:

    标签: wpf xaml mvvm


    【解决方案1】:

    Err, grumble grumble... 我在默认状态“灰色”而不是“灰色”的名称中有拼写错误 - 无论如何 - 这不是一个太糟糕的例子。 :)

    【讨论】:

      猜你喜欢
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-01
      • 2019-11-19
      • 2020-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多