WPF:将转换器应用于ItemsSource

时间:2011-05-20 22:20:19

标签: c# .net wpf binding

是否可以将转换器应用于xaml中控件的数据源?

或者还有另一种方法可以做到这一点。

基本上我有一个接受特定类型对象的自定义控件。该对象与该控件紧密绑定。我不想在我的视图模型中转换为此类型。所以我希望能够绑定到常规属性(如List)并让它通过转换器自动转换为我的对象。

我尝试过这样的事情。

ItemsSource="{Binding CurrentTables, Converter={x:Static cconverters:SpyFilterDataObjectConverter}}" 

2 个答案:

答案 0 :(得分:1)

x:Static的语法为namespace:Type.StaticMember,您应该实例化转换器并将其作为静态属性公开。

或者,您可以在Application.Resources中的App.xaml中创建实例,然后可以使用其密钥在整个应用程序中将其作为静态资源引用。

答案 1 :(得分:1)

嗯,对我来说使用这种转换器似乎并不好。基本上,转换器只执行一次转换操作,因此您不会收到任何更新。我使用了不同的方法 - 只需创建一些包含初始集合的包装器(它应该实现INotifyCollectionChanged)和一些将初始对象转换为包装对象的包装策略。