0
RadGridViewコントロールを使用するSilverlightアプリケーションがあります。ユーザーが列の値を更新すると、その合計が更新されると予想されます。この動作は、Telerikのデモサイトに表示されます。私はそれが私のビューモデルであることに感銘を受けた。確信はないけど。ここに私のビューのスニペットとビューモデルがあります。XAMLの配列インデックスによる双方向バインディング
ビュー
<telerik:RadGridView>
<telerik:GridViewDataColumn Header="Column1" DataMemberBinding="{Binding Path=Tally[0], Mode=TwoWay}">
<telerik:GridViewDataColumn.AggregateFunctions>
<telerik:SumFunction ResultFormatString="{}{0:N2}" SourceField="Tally[0]" />
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="Column2" DataMemberBinding="{Binding Path=Tally[1], Mode=TwoWay}">
<telerik:GridViewDataColumn.AggregateFunctions>
<telerik:SumFunction ResultFormatString="{}{0:N2}" SourceField="Tally[1]" />
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="Column3" DataMemberBinding="{Binding Path=Tally[2], Mode=TwoWay}">
<telerik:GridViewDataColumn.AggregateFunctions>
<telerik:SumFunction ResultFormatString="{}{0:N2}" SourceField="Tally[2]" />
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
</telerik:RadGridView>
のViewModel
public class MyViewModel : ViewModel
{
private ObservableCollection<Item> items = Item.GetAll();
public ObservableCollection<Item> Items
{
get { return items; }
set {
items = value;
NotifyPropertyChanged("Items");
}
}
}
public class Item : ViewModel
{
private List<int> tally = new List<int>();
public List<int> Tally
{
get { return tally; }
set
{
tally = value;
NotifyPropertyChanged("Tally");
}
}
public Item()
{
for (int i = 0; i < 10; i++)
this.Tally.Add(i);
}
public static ObservableCollection<Item> GetAll()
{
ObservableCollection<Item> items = new ObservableCollection<Item>();
for (int i = 0; i < 10; i++)
items.Add(new Item(i));
return items;
}
}
はなぜ総和が更新されていませんか?