1

データの表示に使用する WPF MVVM アプリケーションに取り組んでいDataGridsます。私は手動で列を定義していますが、ほとんどの場合、DataGridTextColumn.

キーボードを使用して結果のデータグリッドをナビゲートする場合、セルにナビゲートすることでセルを強調表示でき、値の入力を開始することでセル値を変更できます。この動作は で機能しDataGridTextColumnます。

場合によってはDataGridTemplateColumn、 と のバインディングが異なるを使用する必要がCellTemplateありCellEditingTemplateます。これにより、表示された値をフォーマットできますが、ユーザーがセルの編集を開始すると、フォーマットされていない値に戻ります。ただし、上記のキーボード ナビゲーションと編集方法は、現在の実装では機能しません。セルを強調表示して F2 を押して編集するか、マウスでセルをクリックする必要があります。

以下は、私の現在の実装のモックアップです。これFooDataGridTextColumn正常に動作し、問題を引き起こしてBarいるDataGridTemplateColumnにあります。

my の定義を変更しDataGridTemplateColumnて、 と同じキーボード ナビゲーションおよび編集機能を持たせるにはどうすればよいDataGridTextColumnですか?

<DataGrid ItemsSource="{Binding ListItems}">
    <DataGrid.Columns>

        <DataGridTextColumn Binding="{Binding Foo}"
                            Header="Foo" />

        <DataGridTemplateColumn Header="Bar">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ContentPresenter Content="{Binding Path=BarString, Mode=OneWay}"
                                      HorizontalAlignment="Right" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
            <DataGridTemplateColumn.CellEditingTemplate>
                <DataTemplate>
                    <TextBox Text="{Binding BarValue, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"
                             HorizontalContentAlignment="Right" />
                </DataTemplate>
            </DataGridTemplateColumn.CellEditingTemplate>
        </DataGridTemplateColumn>

    </DataGrid.Columns>
</DataGrid>
4

2 に答える 2

0

この問題を解決するには、シングル クリック編集を実装する必要があります。私は同じ問題を抱えていましたが、違いは、編集する必要のあるチェックボックスがあったことです。この記事は役に立ちました。チェックしてください: http://wpf.codeplex.com/wikipage?title=Single-Click%20Editing

于 2013-01-09T09:10:22.423 に答える