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