私は Windows 開発の初心者であり、もちろん Metro スタイル アプリ開発の初心者です。Data Binding の仕組みがよくわかりません。
私はアイテムのリストを持っています。
private List<Expense> _expenses = new List<Expense>();
public List<Expense> Items
{
get
{
return this._expenses;
}
}
XAMLにバインドします。(分割ページ テンプレートを使用します)
protected override void OnNavigatedTo(NavigationEventArgs e)
{
this.DefaultViewModel["Items"] = _data.Items;
}
それから私はそれを表示します
<UserControl.Resources>
<CollectionViewSource
x:Name="itemsViewSource"
Source="{Binding Items, Mode=TwoWay}"/>
</UserControl.Resources>
<ListView
x:Name="itemListView"
AutomationProperties.AutomationId="ItemsListView"
AutomationProperties.Name="Items"
Margin="120,0,0,60"
ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
SelectionChanged="ItemListView_SelectionChanged"
ItemTemplate="{StaticResource DefaultListItemTemplate}"/>
これはうまくいきます。次に、ユーザーがボタンをクリックすると、新しいアイテムがリストに追加されます
_data.Items.Add(new Expense
{
Total = 100,
When = new DateTime(2013, 6, 6),
For = "Myself"
});
ListView
設定してから自動的に更新されることを期待していましたMode=TwoWay
が、そうではありません。概念を誤解していて、リストを更新できませんか? そうでなければ、何が間違っていたのでしょうか?