如何在数据网格中触发Text Changed事件的模板列

时间:2012-11-09 03:09:42

标签: .net silverlight xaml datagrid silverlight-4.0

我是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>

4 个答案:

答案 0 :(得分:1)

右键单击您的silverlight数据网格转到 - >属性,然后单击要添加选择更改事件的文本框,在属性工具栏中找不到文本更改事件。

enter image description here

然后它会自动生成更改文本的事件。

  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失去焦点时(默认情况下)。