WPF 文本框修改数据触发事件
WPF 文本框修改数据触发事件
1、xaml文件页面布局--- Grid中布局输入文本框
效果:


<DataGrid x:Name="TenantDataGrids" Width="779" Height="194" AutoGenerateColumns="False" CanUserAddRows="False" ColumnHeaderStyle="{DynamicResource MyDataGridColumnHeadeStyle}" HeadersVisibility="All" ItemsSource="{Binding PurchaseInfoList}"> <DataGrid.Columns> <!--<DataGridTemplateColumn Width="50"></DataGridTemplateColumn>? <DataGridTemplateColumn Width="50" /> <DataGridTemplateColumn Width="50" />--> <DataGridTextColumn Binding="{Binding GoodInfo.commoditycode}" EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}" ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}" Header="商品编码" /> <DataGridTextColumn Binding="{Binding GoodInfo.productname}" EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}" ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}" Header="商品名称" /> <DataGridTextColumn Binding="{Binding PurchaseInfo.BuyNum}" EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}" ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}" Header="已入数量" /> <DataGridTemplateColumn Width="100" Header="新入数量"> <DataGridTemplateColumn.CellTemplate> <!-- https://www.cnblogs.com/fdyang/p/10160503.html --> <!-- (WPF) Textbox 每次输入触发事件处理 --> <DataTemplate> <TextBox md:HintAssist.Hint="采购数量" DockPanel.Dock="Top" Text="{Binding SelectPurchaseGoods.BuyNum, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> <i:Interaction.Triggers> <i:EventTrigger EventName="TextChanged"> <i:InvokeCommandAction Command="{Binding Path=DataContext.BuyNumTextChanged, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" CommandParameter="{Binding}" /> </i:EventTrigger> </i:Interaction.Triggers> </TextBox> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTextColumn Binding="{Binding PurchaseInfo.BuyNum}" EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}" ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}" Header="金额合计" /> <DataGridTemplateColumn Width="100" Header="保质期"> <DataGridTemplateColumn.CellTemplate> <!-- https://www.cnblogs.com/fdyang/p/10160503.html --> <!-- (WPF) Textbox 每次输入触发事件处理 --> <DataTemplate> <TextBox md:HintAssist.Hint="采购数量" DockPanel.Dock="Top" Text="{Binding SelectPurchaseGoods.BuyNum, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> <i:Interaction.Triggers> <i:EventTrigger EventName="TextChanged"> <i:InvokeCommandAction Command="{Binding Path=DataContext.BuyNumTextChanged, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" CommandParameter="{Binding}" /> </i:EventTrigger> </i:Interaction.Triggers> </TextBox> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTemplateColumn Width="100" Header="生产日期"> <DataGridTemplateColumn.CellTemplate> <!-- https://www.cnblogs.com/fdyang/p/10160503.html --> <!-- (WPF) Textbox 每次输入触发事件处理 --> <DataTemplate> <DatePicker Grid.Row="0" md:HintAssist.Hint="预计到货时间" DisplayDate="2019-01-01" SelectedDate="{Binding ActiveTime}" Style="{StaticResource MaterialDesignFilledDatePicker}"> <i:Interaction.Triggers> <i:EventTrigger EventName="TextChanged"> <i:InvokeCommandAction Command="{Binding Path=DataContext.BuyNumTextChanged, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" CommandParameter="{Binding}" /> </i:EventTrigger> </i:Interaction.Triggers> </DatePicker> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid>
2、给文本框赋予点击事件:----在其文本发生改变时触发事件
https://www.cnblogs.com/fdyang/p/10160503.html --文档中的触发事件此博客是在对应viewModel.cs文件中实现的,不是在xaml.cs中

<!-- https://www.cnblogs.com/fdyang/p/10160503.html --> <!-- (WPF) Textbox 每次输入触发事件处理 --> <!--引入资源 xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"--> <DataTemplate> <TextBox md:HintAssist.Hint="采购数量" DockPanel.Dock="Top" Text="{Binding SelectPurchaseGoods.BuyNum, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> <i:Interaction.Triggers> <i:EventTrigger EventName="TextChanged"> <i:InvokeCommandAction Command="{Binding Path=DataContext.BuyNumTextChanged, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" CommandParameter="{Binding}" /> </i:EventTrigger> </i:Interaction.Triggers> </TextBox> </DataTemplate>
3、对应.cs中实现双向绑定数据,并编写修改文本框数据时触发的事件

本文来自博客园,作者:じ逐梦,转载请注明原文链接:https://www.cnblogs.com/ZhuMeng-Chao/p/16436055.html

浙公网安备 33010602011771号