3

赤いボックスの金額を合計してテキストブロック (黄色いボックス) に表示するにはどうすればよいですか?

ここに画像の説明を入力

下の画像からわかるように、リストボックスにデータを表示するために、観察可能なコレクションをリストボックスにバインドしました

リストボックス

さらに、リストボックスのデータ テンプレートも定義しました。

ここに画像の説明を入力

4

1 に答える 1

1

別のプロパティ (例: Sum) を ViewModel に追加し、それをバインドして、コレクションが変更さTextBlockれるたびにその値を計算する必要があります。ToDoBills

LINQ を使用して合計を計算できます。

Sum = ToDoBills.Sum(i => i.Amount);

アップデート

INotifyPropertyChangedクラスにすでにインターフェイスを実装している可能性があるため、コレクションが変更されたときにプロパティ値ViewModelを更新するために使用します。Sum

private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
    if (PropertyChanged != null)
    {
        PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }

    if(propertyName == "ToDoBills")
        UpdateSumValue();
}

private void UpdateSumValue()
{
     Sum = ToDoBills.Sum(i => i.Amount);
}
于 2013-03-18T10:48:56.850 に答える