C# WPF:将转换器应用于ItemsSource

C# WPF:将转换器应用于ItemsSource,c#,.net,wpf,binding,C#,.net,Wpf,Binding,是否可以将转换器应用于xaml中控件的数据源 或许还有另一种方法可以做到这一点 基本上,我有一个接受特定类型对象的自定义控件。该对象与该控件紧密绑定。我不想在整个视图模型中都转换为这种类型。因此,我希望能够绑定到常规属性,如List,并通过转换器将其自动转换为我的对象 我尝试过这样的事情 ItemsSource="{Binding CurrentTables, Converter={x:Static cconverters:SpyFilterDataObjectConverter}}" 如果

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

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

基本上,我有一个接受特定类型对象的自定义控件。该对象与该控件紧密绑定。我不想在整个视图模型中都转换为这种类型。因此,我希望能够绑定到常规属性,如List,并通过转换器将其自动转换为我的对象

我尝试过这样的事情

ItemsSource="{Binding CurrentTables, Converter={x:Static cconverters:SpyFilterDataObjectConverter}}" 
如果具有语法
名称空间:Type.StaticMember
,则应实例化转换器并将其作为静态属性公开


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

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

那太好了。。但是我使用的是MVVM。。因此,我的控件绑定到viewmodel上的依赖项属性。不知道如何在包装的中间注入包装。因此它会对属性的任何更改做出反应。您不应该将此包装传递给绑定,只需创建包装的实例,将集合传递给此包装,然后将属性绑定到包装。使用这种方法,包装器将像一个黑盒子一样封装所有转换逻辑。明白我的意思吗?顺便问一下,您知道您的viewmodel可以实现INotifyPropertyChanged吗?这意味着您可以从presenters层次结构中排除DependencyObject。如果我使用代码传递我的集合,那么所有这些问题都很容易解决。我的困难源于我使用的是MVVM,我只是绑定到视图模型上的属性,这些属性是字符串/对象等的标准列表。。每次列表更改显示时,我都想无缝地将这些对象转换为特定类型。使用INotifyPropertyChanged over dependency属性有助于解决此问题?关于INotifyPropertyChanged的问题,此使用无法帮助您解决上述问题。只是一个建议,没别的了。抱歉,我仍然不明白,为什么不创建一个我描述的包装,并通过viewmodel…Dup聚合此包装?