C# 手机不工作
我有一个datagrid,我想在其中控制输入的值为数字 因此,当我输入错误的值时,如图所示 我想恢复以前的值 为此,我需要捕获新输入的值,但当我这样做时 您可以看到,在编辑之前,我仍然获得旧值。C# 手机不工作,c#,wpf,datagrid,cell,edit,C#,Wpf,Datagrid,Cell,Edit,我有一个datagrid,我想在其中控制输入的值为数字 因此,当我输入错误的值时,如图所示 我想恢复以前的值 为此,我需要捕获新输入的值,但当我这样做时 您可以看到,在编辑之前,我仍然获得旧值。 那么,我该怎么做才能得到新输入的值,在按下ENTER键后必须对其进行分析呢?使用CellEditingTemplate如: <DataGridTemplateColumn> <DataGridTemplateColumn.CellTemplate>
那么,我该怎么做才能得到新输入的值,在按下ENTER键后必须对其进行分析呢?使用
CellEditingTemplate
如:
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Age}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox LostFocus="TextBox_LostFocus" Background="Aquamarine" Text="{Binding Age, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
使用
CellEditingTemplate
如:
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Age}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox LostFocus="TextBox_LostFocus" Background="Aquamarine" Text="{Binding Age, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
如果将
ObservableCollection
用作DataGrid
ItemsSource
并绑定到YourClass
属性,您可以在属性setter发生更改之前获取新值。由于这是函数private DataView convertfrommatrixtodatable(string[,]matrix)的结果导致我被迫使用数据表也许最好检查该值是否为整数
,如果它是整数
,则允许输入数据表或集合,但它不满足,在CellEditEnding上,我们总是得到当前值。你能告诉我们你的datagrid代码@Patrick吗?如果你将使用ObservableCollection
作为datagrid
ItemsSource
并绑定到YourClass
属性,您可以在属性setter发生更改之前获取新值。由于这是函数private DataView convertfrommatrixtodatable(string[,]matrix)的结果导致我被迫使用数据表也许最好检查该值是否为整数
,如果它是整数
,则允许输入数据表或集合,但它不满足,在CellEditEnding上,我们总是得到当前值。你能告诉我们你的datagrid代码@Patrick吗?