8,757
社区成员
发帖
与我相关
我的任务
分享<DataGridTemplateColumn Header="收费时间" Width="120" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate >
<DatePicker Text="{Binding FFetchDate,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" Background="Transparent" Width="115" SelectedDateChanged="DatePicker_SelectedDateChanged" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="A费用" Width="100" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate >
<MyContrl:MyTextBox Text="{Binding lcPrice,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" TextChanged="MyTextBox_TextChanged" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="B费用" Width="100" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate >
<MyContrl:MyTextBox Text="{Binding czPrice,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" TextChanged="MyTextBox_TextChanged" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="C费用" Width="100" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate >
<MyContrl:MyTextBox Text="{Binding zxPrice,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" TextChanged="MyTextBox_TextChanged" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="杂费" Width="100" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate >
<MyContrl:MyTextBox Text="{Binding qtPrice,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" TextChanged="MyTextBox_TextChanged" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="合计" Width="100" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate >
<TextBlock Text="{Binding FAmount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> private void DatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
if ((sender as DatePicker).Text == "")
{
t_CRM_ICStockBillEntryInfo selectItem = gdvDataList.SelectedItem as t_CRM_ICStockBillEntryInfo;
sbelist.Remove(selectItem);
}
else
{
t_CRM_ICStockBillEntryInfo sbe = sbelist.Where(q => q.FFetchDate == (sender as DatePicker).Text).FirstOrDefault();
if (sbe == null)
{
sbelist.Add(new t_CRM_ICStockBillEntryInfo { FFetchDate = (sender as DatePicker).Text, lcPrice = "0", czPrice = "0", zxPrice = "0", qtPrice = "0", FAmount = "0" });
}
}
gdvDataList.DataContext = null;//出现死循环
gdvDataList.DataContext = sbelist; //仅这样绑定 或者ItemSource也是,新添加进来的行不会显示出来
} public class testTowWay : INotifyPropertyChanged
{
private Decimal _a = 0;
public Decimal A
{
get { return _a; }
set { _a = value; CountC(); }
}
private Decimal _b = 0;
public Decimal B
{
get { return _b; }
set { _b = value; CountC(); }
}
private Decimal _c = 0;
public Decimal C
{
get { return _c; }
set { _c = value; PropertyChangedName("C"); }
}
public event PropertyChangedEventHandler PropertyChanged;
public void PropertyChangedName(String PropertyName)
{
if (PropertyChanged != null)//有改变
{
PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));//对Name进行监听
}
}
public void CountC()
{
if (PropertyChanged != null)//有改变
{
this.C = this.A + this.B;
}
}
}
尝试下在类里写,但合计行的统计没办法实现,重点是发现,当数据绑定的时候,即使原来是值是7,现在的值仍然是7 都会响应,看来是只要值替换,即使替换的值不变,INotifyPropertyChanged仍然判断是值改变?public class datasource : INotifyPropertyChanged
{
public bool ischeck=false;
public bool isCheck
{
get
{
return ischeck;
}
set
{
ischeck = value;
onPropertyChanged(this, "isCheck");
}
}
public string col1 { get; set; }
public string col2 { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
private void onPropertyChanged(object sender, string propertyName)
{
if (this.PropertyChanged != null)
{
PropertyChanged(sender, new PropertyChangedEventArgs(propertyName));
}
}
}