Ste*_*mid 1 c# data-binding wpf mvvm catel
对于一个应用程序,我需要创建一个DataGrid与DataGridTextColumn它有MultiBinding。第一个Binding使用 ItemsSource 中给出的属性,第二个Binding应该使用我的 ViewModel 中的属性。
<DataGridTextColumn Header="Hourly wage" SortMemberPath="HourlyWage">
<DataGridTextColumn.Binding>
<MultiBinding StringFormat="{}{0}{1}">
<Binding Path="HourlyWage" />
<Binding Path="CurrencyUnit" />
</MultiBinding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
Run Code Online (Sandbox Code Playgroud)
在这种情况下HourlyWage是当前项目的属性。CurrencyUnit是我的 ViewModel 中的一个属性。如果我启动我的应用程序,此列是空的。那么我如何让它同时显示呢?
我使用 Catel 作为我的 MVVM 框架和 MahApps.Metro 作为我的 GUI。我无法在我的视图中创建 ViewModel,因为它由 Catel 处理。
问候, 斯特凡
如果无法访问视图模型,则可以按如下方式定义第二个绑定:
<Binding RelativeSource="{RelativeSource AncestorType=DataGrid}"
Path="DataContext.CurrencyUnit" />
Run Code Online (Sandbox Code Playgroud)
Binding 的源将设置为 DataGrid 实例。路径DataContext.CurrencyUnit将引用属性YourViewModel.CurrencyUnit,假设您的视图模型保存数据网格的项目集合和货币单位属性。
| 归档时间: |
|
| 查看次数: |
4622 次 |
| 最近记录: |