一开始没写
UpdateSourceTrigger=LostFocus
,双向绑定一直失败。UpdateSourceTrigger属性取UpdateSourceTrigger枚举的值之一。默认值为Default,该值返回目标依赖属性的默认UpdateSourceTrigger值。但是,对于大多数依赖属性来说,默认值为PropertyChanged,而
Text属性应取LostFocus
。
xaml代码
<DataGridTemplateColumn Header="操作" Width="240*" MinWidth="240" CellStyle="{StaticResource cellCenterStyle}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox x:Name="txtResult" Text="{Binding Path=InspectValue, Mode=TwoWay,UpdateSourceTrigger=LostFocus}" Style="{StaticResource InputTextBox}" MaxLength="255">
</TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox x:Name="txtResult" Text="{Binding Path=InspectValue, Mode=TwoWay,UpdateSourceTrigger=LostFocus}" Style="{StaticResource InputTextBox}" MaxLength="255">
</TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
model代码:
// 结果值
private string _inspectValue;
/// <summary>
/// 输入的结果
/// </summary>
public string InspectValue
{
get => _inspectValue;
set
{
_inspectValue = value;
// 双向绑定
RaisePropertyChanged("InspectValue");
}
}
感谢:
https://www.e-learn.cn/content/qita/2755265
键盘按下Enter键时触发事件。
TextBox
虽然
双向
绑
定
到CurrentPageNumber,但是Enter事件触发时,此时焦点还在
textbox
上时,后台CurrentPageNumber 的值仍未动态更新(
双向
绑
定
未触发)。解决办法Text="{Binding CurrentPageNumber, UpdateSourceTrigger=PropertyChanged}" ,Enter事件触...
最近的项目用到了
DataGrid
控件,做个笔记,记录一下开发过程
中
遇到的问题:
1.
DataGrid
的ItemSource的
绑
定
最好使用ObservableCollection<>集合类型,能够自动更新数据到前台。
2.
DataGrid
自带键盘导航上下左右键切换选
中
单元格或行的功能。但是,如果
绑
定
了SelectedIndex(selectedItem等)属性,并且Mode=Twow...
在之前的
DataGrid
的
DataGrid
TemplateColumn列
中
,自
定
义了一个
TextBox
控件,但是在C#代码
中
提示找不到这个控件,导致无法对该控件进行操作。在网上搜索后,发现一些处理方法比较繁琐,下面这个方法最简便。
xaml格式描述:
1 <
DataGrid
Name="
dataGrid
" Grid.Row="1" ItemsSource="{Binding}"...
2.RecognizesAccessKey。(留坑,有时间再补充)
3.设置界面默认焦点位置,比如将焦点设置为默认在用户名输入框usernameBox:FocusManager.FocusedElement="{Binding ElementName=usernameBox}
4.利用附加属性,扩...
使用
中
发现
textbox
绑
定
数据类的时候只有在失去焦点的时候才会提示数据类进行更新 (当然前提是
双向
绑
定
) 大多数控件都是实习更新
发现只需要设置一个属性即可 设置 UpdateSourceTrigger属性为PropertyChanged
UpdateSourceTrigger是一个枚举 枚举内容如下(摘自《
WPF
编程宝典》)
Pro...
DataGrid
默认情况下就支持行内编辑,只不过比较简单,通常是显示用TextBlock,双击编辑时用
TextBox
,不过
DataGrid
支持模板自
定
义,编辑时使用其它控件,这样就可以实现更强大的功能。
在
wpf
的
DataGrid
控件
中
,某一列的数据模板为
TextBox
控件的话,
绑
定
Text="{Binding TxtSn, UpdateSourceTrigger=PropertyChanged}" UpdateSourceTrigger=PropertyChanged为必须设置项。
代码如下:
<
DataGrid
TemplateColumn x:Name="csdx2"...
最近项目有个需求需要动态扩展
DataGrid
,动态扩展列,cell的模板不一样,有的
textbox
,有的combox,并且需要后台
绑
定
style设置datatrigger
先看combox的
DataGrid
TemplateColumn col = new
DataGrid
TemplateColumn();
var stackPanelFactory = new FrameworkElementFactory(typeof(S