【发布时间】:2009-07-30 00:51:31
【问题描述】:
目前我的模型有十个属性,出于我们的目的,我将在这里调用AnnualizedRate1,AnnualizedRate2,...,AnnualizedRate10,它们通过十个属性在视图模型中显示给视图Rate1,@ 987654325@, ..., Rate10。我的一个观点在DataGrid 中显示了这些值。这是非常重复的,并且很难适应不断变化的需求。一定有比以下更好的方法。
型号 (MyModel):
public decimal AnnualizedRate1 { get { return this.AnnualizedRate(1); } }
public decimal AnnualizedRate2 { get { return this.AnnualizedRate(2); } }
...
public decimal AnnualizedRate10 { get { return this.AnnualizedRate(10); } }
MyModel.AnnualizedRate 在哪里
public decimal AnnualizedRate(int i);
查看模型 (MyViewModel):
public decimal Rate1 { get { return myModel.AnnualizedRate1; } }
public decimal Rate2 { get { return myModel.AnnualizedRate2; } }
...
public decimal Rate10 { get { return myModel.AnnualizedRate10; } }
查看(MyView):
xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit"
...
<dg:DataGrid>
<dg:DataGrid.Columns>
<dg:DataGridTextColumn
Header="Rate1"
Binding="{Binding Rate1, StringFormat=P}"
IsReadOnly="True"/>
<dg:DataGridTextColumn
Header="Rate2"
Binding="{Binding Rate2, StringFormat=P}"
IsReadOnly="True"/>
...
<dg:DataGridTextColumn
Header="Rate10"
Binding="{Binding Rate10, StringFormat=P}"
IsReadOnly="True"/>
</dg:DataGrid.Columns>
</dg:DataGrid>
有人有什么想法吗?
【问题讨论】:
-
究竟什么是重复 - 必须为这 10 个属性中的每一个分别定义和绑定一个列?这是你想要摆脱的吗?
-
他说他必须为 Rate1 到 Rate10 一遍又一遍地复制和粘贴相同的 xaml,并且只需更改该索引号。从所有这些都是 DataGrid.Columns 属性中的 DataGridTextColumn 的事实来看,我假设他有一个包含 10 列的网格,并且他喜欢让列的代码更简洁。
-
@Anderson Imes:您正确理解了问题和目标。
-
你的效果如何?