我有一个 ListBox,在其中将 ItemsSource 设置为从 WCF 服务填充的 CollectionViewSource。我使用 ListBox.ItemTemplate\DataTemplate 中的值转换器来转换 ItemsSource 中对象的属性。
这一切都按预期工作,但现在我需要更新转换过程,以便转换后的值仍然基于单个对象属性值,除非不同的属性等于特定值。该值是在 xaml 后面的代码中设置的,这是在页面构造函数中设置的字段级变量。
为此,我想将字段级别变量作为 ValueConverter 的 ConverterParameter 传递。我尝试了几种主要使用this question中的想法的方法,除了解析xaml时总是出错(并且应用程序无法加载)。
一种解决方法可能是向 ItemsSource 中的对象添加一个属性,但我真的不想这样做。部分是因为该对象在多个项目中使用,所以我不想更改 i .... 并且因为我想看看其他方法是否可行。我也相信 wpf 有一个多值转换器(也许是 SL 4.0),但我在 SL 3.0 上。
我的猜测是到目前为止我遇到的问题是由于加载、绑定和解析 xaml 的时间。
所以有几个问题:
- 这可以像我上面描述的那样完成吗?
- 如果不是,那是什么问题?
- 如果没有,是否有另一种方法不向对象添加属性?