我是Silveligt和Data Grid的新手。我试图为数据网格中的模板列触发Text Changed事件。但它不起作用。像这样的Niether Grid事件正在解雇。
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>
答案 0 :(得分:1)
右键单击您的silverlight数据网格转到 - >属性,然后单击要添加选择更改事件的文本框,在属性工具栏中找不到文本更改事件。
然后它会自动生成更改文本的事件。
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
}
答案 1 :(得分:1)
CellTemplate
的{{1}}只是一个显示模板。 DataGrid
实际上会根据您的要求行事。
以下代码将触发CellEditingTemplate
事件。
textchange
希望这有帮助!
答案 2 :(得分:0)
我认为您应该考虑将绑定更改为:
<TextBox Text="{Binding Urgency, Mode=TwoWay}" />
然后处理Urgency触发的OnPropertyChanged事件。
答案 3 :(得分:0)
您是否尝试创建绑定(或手动编码)以处理DataGrid的“SelectedItem”的属性,然后附加到“PropertyChanged”事件? 然后,您可以“嗅探”任何所选项目的更改,并执行您喜欢的任何操作。
另一个提示是在TextBoxes的任何绑定中定义“UpdateSourceTrigger = PropertyChanged”。 这意味着数据绑定更改是在文本更改时完成的,当TextBox失去焦点时(默认情况下)。