【发布时间】:2014-04-12 03:51:10
【问题描述】:
我的 MainWindow 的数据上下文是一个类 ViewModel:
视图模型:
- 位置
- IsUnsavedChanges
我希望 MainWindow 的标题基于转换器。转换器应接收 ViewModel 类,但应在 Location 或 IsUnsavedChanges 更改时调用它。
当我希望转换器绑定到一个对象时,我可以使用什么技术,同时对该对象字段的变化做出反应?
目前我可以绑定到数据上下文中的 Location 字段,并且效果很好。请参见 MainWindow.xaml 中的以下内容:
<Window.Resources>
<my:MainWindowTitleConverter x:Key="titleConverter"/>
</Window.Resources>
<Window.Title>
<Binding Converter="{StaticResource titleConverter}" Path="Location"/>
</Window.Title>
但是,如果我只是绑定到数据上下文(未指定路径),那么它会在数据上下文更改时调用,而不是在 Location 或 IsUnsavedChanges 更改时调用。
我可以通过在 ViewModel 中添加一个新的 Title 字段并在 Location、IsUnsavedChanges 等字段发生更改时通知它已更改来解决此问题,但我觉得这有点 hacky。
【问题讨论】:
-
查看多重绑定和
IMultiValueConverter
标签: wpf xaml binding converter