1

Silveligt と Data Grid は初めてです。Data Grid の Template Column に対して Text Changed イベントを発生させようとしています。しかし、うまくいきません。このような Niether Grid イベントが発生しています。

BeginningEdit="dataGrid1_BeginningEdit" 
TextInputStart="dataGrid1_TextInputStart"
TextInputUpdate="dataGrid1_TextInputUpdate" PreparingCellForEdit="dataGrid1_PreparingCellForEdit" 

何か不足していますか?リストからデータをバインドしています。

これは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

4 に答える 4

1

Silverlight データグリッドの Goto ->Properties を右クリックし、選択変更イベントを追加する TextBox をクリックします。プロパティ ツールバーでは、テキスト変更イベントが見つかりません。

ここに画像の説明を入力

次に、テキストが変更されたイベントを自動的に生成します。

  private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
        {

        }
于 2012-11-09T04:39:46.183 に答える
1

CellTemplateforDataGridは単なる表示テンプレートです。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>

お役に立てれば!

于 2012-12-26T15:43:46.093 に答える
0

バインディングを次のように変更することを検討する必要があると思います。

<TextBox Text="{Binding Urgency, Mode=TwoWay}"  />

次に、Urgencyによって発生したOnPropertyChangedイベントを処理します。

于 2012-11-09T13:12:38.797 に答える
0

DataGrid の「SelectedItem」を処理するためにバインド (または手動でコーディング) し、「PropertyChanged」イベントにアタッチするプロパティを作成しようとしましたか? 次に、選択したアイテムの変更を「スニッフィング」して、好きなアクションを実行できます。

もう 1 つのヒントは、TextBox のバインディングで "UpdateSourceTrigger=PropertyChanged" も定義することです。これは、TextBox がフォーカスを失ったときに (デフォルトで) テキストが変更されたときに、データ バインディングの変更が行われることを意味します。

于 2012-12-26T21:05:28.913 に答える