0
我的目標是綁定到WPF中的一組對象。我第一次嘗試使用泛型,但可怕的是失敗了。由於我無法將通用屬性強制轉換爲INotifyProperty接口,因此請聯繫changedevent。WPF綁定列表元組
所以我想出了這個類作爲我的BindingList中的對象。 (是的,我需要那些在列表中的對象發生變化時通知我)。所以我需要你的意見,改進我的代碼。
public class GPair : ObservableObject
{
public GPair()
{
}
private ObservableObject _first;
public ObservableObject First
{
get
{
return this._first;
}
set
{
this._first = value;
((ObservableObject)value).PropertyChanged +=new PropertyChangedEventHandler(First_PropertyChanged);
RaisePropertyChanged("First");
}
}
private ObservableObject _second;
public ObservableObject Second
{
get
{
return this._second;
}
set
{
this._second = value;
((ObservableObject)value).PropertyChanged += new PropertyChangedEventHandler(Second_PropertyChanged);
RaisePropertyChanged("Second");
}
}
private void First_PropertyChanged(object sender, PropertyChangedEventArgs args)
{
RaisePropertyChanged("First");
}
private void Second_PropertyChanged(object sender, PropertyChangedEventArgs args)
{
RaisePropertyChanged("Second");
}
}
ObservableObject只是一個實現INotifyPropertyChanged的helper類。
這段代碼可以讓我夫妻兩個對象在綁定...綁定本身應該是這樣的:
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=First.ObjectPropertie}" />
<TextBlock Text="{Binding Path=Second.ObjectPropertie}" />
</StackPanel>
任何意見或改進?
親切的問候!
比如,我從2個對象,我想在一個列表/ DataGrid中的/ etc顯示...任何控件,能夠顯示列表中得到的信息。但我只能將該控件的datacontext設置爲1個對象。所以我需要一種「元組」,但是實現了可變數據和INotifyPropertyChanged。你的代碼幾乎和我的一樣。只有PropertyChanged的東西在我繼承的ObservableObject類中。但看着你的迴應..它似乎我在一個很好的方式.. :)乾杯:) – 2011-05-05 12:46:40