我有一個在XAML以下形式的結合,直接綁定到Observable集合中的元素時,要通知的正確屬性名稱是什麼?
Title="{Binding SelectedNewsItems[0].Title}"
注意,它指的是一個特定的元素在SelectedNewsItems
其是ObservableCollection
。 (我有各種尺寸的九個按鈕的集合,每個風格和大小的不同,所以更標準ListView
是不恰當的。)
當我重新分配SelectedNewsItems
我提出一個PropertyChanged
事件SelectedNewsItems
,然而,這並不似乎會導致綁定更新單個綁定元素及其屬性。我曾嘗試以下,
public ObservableCollection<NewsItem> _selectedNewsItems;
public ObservableCollection<NewsItem> SelectedNewsItems
{
get
{
return this._selectedNewsItems;
}
set
{
if (this._selectedNewsItems != value)
{
this._selectedNewsItems = value;
this.NotifyPropertyChanged();
for (int i = 0; i < this._selectedNewsItems.Count; i++)
{
this.NotifyPropertyChanged(String.Format("SelectedNewsItems[{0}].Content", i));
this.NotifyPropertyChanged(String.Format("SelectedNewsItems[{0}].Title", i));
this.NotifyPropertyChanged(String.Format("SelectedNewsItems[{0}].Id", i));
this.NotifyPropertyChanged(String.Format("SelectedNewsItems[{0}].Image", i));
}
}
}
}
只需調用NotifyPropertyChanged(「SelectedNewsItems」);(至少它適用於我)應該足夠了。 – Clemens
此外,(afaik)PropertyChanged事件中不會有複合屬性名稱。 – Clemens