.net 如何在数据网格中的模板列中触发文本更改事件
我不熟悉Silveligt和数据网格。Iam正在尝试为数据网格中的模板列触发文本更改事件。但它不起作用。像这样的事件正在发生.net 如何在数据网格中的模板列中触发文本更改事件,.net,silverlight,xaml,datagrid,silverlight-4.0,.net,Silverlight,Xaml,Datagrid,Silverlight 4.0,我不熟悉Silveligt和数据网格。Iam正在尝试为数据网格中的模板列触发文本更改事件。但它不起作用。像这样的事件正在发生 BeginningEdit="dataGrid1_BeginningEdit" TextInputStart="dataGrid1_TextInputStart" TextInputUpdate="dataGrid1_TextInputUpdate" PreparingCellForEdit="dataGrid1_PreparingCellForEdit" 我错过什
BeginningEdit="dataGrid1_BeginningEdit"
TextInputStart="dataGrid1_TextInputStart"
TextInputUpdate="dataGrid1_TextInputUpdate" PreparingCellForEdit="dataGrid1_PreparingCellForEdit"
我错过什么了吗?Iam从列表绑定数据
这是xaml
<sdk:DataGrid AutoGenerateColumns="False" Height="100" HorizontalAlignment="Left" Margin="142,96,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="120" BeginningEdit="dataGrid1_BeginningEdit" TextInputStart="dataGrid1_TextInputStart" TextInputUpdate="dataGrid1_TextInputUpdate" PreparingCellForEdit="dataGrid1_PreparingCellForEdit" LoadingRow="dataGrid1_LoadingRow">
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Header="Test" Width="Auto" >
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Urgency}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Header="Column2" Width="Auto" >
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
右键单击silverlight datagrid转到->属性,然后单击要添加选择更改事件的文本框,在属性工具栏中找不到文本更改事件 然后,它将自动为更改的文本生成一个事件
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
}
我认为您应该考虑将您的绑定更改为:
<TextBox Text="{Binding Urgency, Mode=TwoWay}" />
然后处理由紧急情况触发的OnPropertyChanged事件。
CellTemplate
forDataGrid
只是一个显示模板CellEditingTemplate
实际上会根据您的需求进行操作
下面的代码将触发textchange
事件
<sdk:DataGridTemplateColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Header="Test" Width="Auto">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Urgency}"/>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
<sdk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding Urgency, Mode=TwoWay}" TextChanged="TextBox_TextChanged"/>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
</sdk:DataGridTemplateColumn>
希望这有帮助 您是否尝试创建一个绑定(或手动编码)以处理DataGrid的“SelectedItem”,然后附加到“PropertyChanged”事件的属性? 然后,您可以“嗅探”任何选定项的更改,并执行任何您喜欢的操作 另一个技巧是在文本框上的任何绑定中也定义“UpdateSourceTrigger=PropertyChanged”。
这意味着数据绑定更改是在文本框失去焦点时(默认情况下)更改文本时完成的。您是否收到异常?谢谢Glenn。不。断点从未在事件句柄内命中。您尝试过吗?谢谢Sajeetharan。。实际上我已经试过了,但是没有更新我发布的xaml。但这也不起作用。该事件也未达到断点。您需要删除该文本框的其他事件才能使其正常工作!谢谢..但是我没有附加任何其他事件..但是只有TextChanged事件您提到您有网格事件,最好删除这些事件并检查