【发布时间】:2014-10-07 06:01:10
【问题描述】:
我尝试将我的 observablecollection 绑定到数据网格。我想让最后一列基于其他三个(column[n] = column[x]*column[y]*((column[z]+100)/100)) 类似的东西。我的第一个方法是在 get 部分中使用计算来制作属性,但不能让 UpdateSourceTrigger = PropertyChanged 工作。它仅在我转到另一行时更新值。第二种方法是将最后一列 i xaml 绑定到这三个,并在多转换器中进行计算,但不知道如何使该绑定起作用。
我认为第一种方法更好,所以有人可以告诉我为什么UpdateSourceTrigger = PropertyChanged 不起作用,有什么技巧可以让它起作用吗?
编辑
long ilosc;
public long Ilosc {
get {
return ilosc;
}
set {
ilosc = value; Console.WriteLine("ilosc"); NotifyPropertyChanged("CenaBrutto");
}
}
float cena;
public float Cena {
get {
return cena;
}
set {
cena = value; Console.WriteLine("cena"); NotifyPropertyChanged("CenaBrutto");
}
}
float vat;
public float Vat {
get {
return vat;
}
set {
vat = value; Console.WriteLine("vat"); NotifyPropertyChanged("CenaBrutto");
}
}
public float CenaBrutto {
get {
return Cena * Ilosc * ((Vat + 100) / 100); ;
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string property) {
if (PropertyChanged != null) {
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
}
和xaml代码
<DataGrid ItemsSource="{Binding ElementName=fRoot, Path=Items, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Name="dgTU" Grid.Row="1"/>
【问题讨论】:
标签: c# wpf xaml binding datagrid