DataGridTextColumn
セルにアイコンを追加すると、TextBox
の横に表示されます。これを行うにはDataGridTemplateColumn
を使用することができますが、私はDataGridTextColumn
のすべての利点を失います。たとえば、入力を開始するとすぐにDataGridTextColumn
が編集モードに入り、Escキーを押すと元の値に戻すはずです。コントロール(アイコンのような)をDataGridTextColumnに追加するにはどうすればよいですか?
答えて
DataGridTemplateColumn
が完全にカスタマイズしたいときに提供されます。CellTemplate
とCellEditingTemplate
の両方を指定します。例えば;<DataGridTemplateColumn> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding Name}"/> <Image Source="..."/> </StackPanel> </DataTemplate> </DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBox Text="{Binding Name}"/> <Image Source="..."/> </StackPanel> </DataTemplate> </DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn>
そして、あなたはあまりにもここにあなたのEscape
キー機能を取得します。
私はあなたがDataGridTemplateColumn
を使用したくない理由を私は従わわからないんだけど、あなたはまた、DataGridBoundColumn
から派生したカスタムクラスを作り、GenerateElement
とGenerateEditingElement
をオーバーライドするオプションがあります。自動生成列を使用している場合は、DataGridBoundColumn
カスタムを作成するために、AutoGeneratingColumn
イベントを処理して、使用する特定の列に対して適切な場合にも処理する必要があります。
また、私はAnjumSKhanが正しいと思っています。DataGridTemplateColumn
は、テキストボックスの横にイメージを表示するだけであれば、あなたのニーズにふさわしいはずです。私が今までにカスタムDataGridBoundColumn
と一緒に行く必要があった唯一の時は、XAMLテンプレートを使って簡単に達成できなかった特別な振る舞いが必要なときです。これらの状況はごくわずかです。
編集: セルをクリックしたときに編集モードにならない問題については、カスタムのDataGridCell
テンプレートを使用すると、実際に同様の問題が発生しました。これは私のために働いていた(でそれを置くあなたのDataGrid
のリソース):
<Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}"
BasedOn="{StaticResource {x:Type DataGridCell}}">
<EventSetter Event="Control.GotFocus" Handler="DataGridCell_GotFocus"/>
</Style>
、その後ハンドラDataGridCell_GotFocus
中:
private void DataGridCell_GotFocus(object sender, RoutedEventArgs e)
{
this._MyDataGrid.BeginEdit();
}
Thanks、Peter、DataGridBoundColumnから派生させて、必要な処理を行う必要があり、DataGridTextColumnソースコードから多くのコードをコピーする必要があるかもしれません。私がAnjumSKhanへのコメントで述べたように、DataGridTemplateColumnは、選択されたセルの入力を自動的に開始することを許可していません。編集モードにするためには、セルをダブルクリックする必要があります。これは私が望むものではありません。 – redcurry
ああ、そうだ。私はそれを複製しようとしなかったが、私は似たようなことに直面したので驚くことではない。上記の私の編集方法を参照してください。うまくいけば、それは多くのロジックを再発明しなければならなくても、あなたのために働くでしょう。 –
これは私が望むものに近いが、それほどではない。私は実際には、セルをクリックすると編集モードに入ることを望んでいません。私はそれが現在のセルに入力を開始するときに編集モードに入るようにします。次に、Escキーを押すと、入力した内容を元に戻して元のテキストを復元することができます。あなたのソリューションは将来私にとって有用かもしれませんが、ありがとうございます。 – redcurry
- 1. DataGridTextColumnにツールチップを追加するにはどうすればいいですか?
- 2. スクロール可能なNSScrollViewにNSTextViewコントロールとNSMatrixコントロールを追加するにはどうすればよいですか?
- 3. アイコンを削除せずにアイコンをバインディングに追加するにはどうすればよいですか?
- 4. Ajax Sliderコントロールに異なる値を追加するにはどうすればよいですか?
- 5. アンドロイドでGoogleマップ上でクリック可能なアイコンを追加するにはどうすればよいですか?
- 6. DoctypeがHTMLに追加されないようにするにはどうすればよいですか?
- 7. TextBoxに行を追加/削除しないようにするにはどうすればよいですか?
- 8. NumericUpDownコントロールに基づいてListBoxに変数を追加するにはどうすればよいですか?
- 9. VS2010アドインのサブメニューにアイコンを追加するにはどうすればよいですか?
- 10. カスタムタブの各タブにアイコンを追加するにはどうすればよいですか?
- 11. 矩形のボーダーコーナーにアイコンを追加するにはどうすればよいですか?
- 12. QtのQComboBoxにアイコンを追加するにはどうすればよいですか?
- 13. コンポーネントパレットページのコンポーネントにアイコンを追加するにはどうすればよいですか?
- 14. このアイコンをアクションバーに追加するにはどうすればよいですか?
- 15. ItemsControlで各コントロールの後にボタンを追加するにはどうすればよいですか?
- 16. <Select>コントロールに「すべて」の値を追加するにはどうすればよいですか?
- 17. ナビゲーションバー内にページインジケータを追加するにはどうすればよいですか? Twitterのような
- 18. コントロールに新しいプロパティを追加するにはどうすればよいですか?
- 19. コントロールのBackColorが変更されないようにするにはどうすればよいですか?
- 20. ImageViewをどうすればよいですか?relativeLayoutに追加
- 21. 実行時に複合コントロールをレイアウトに追加するにはどうすればよいですか?
- 22. コントロールをグリッドビューに動的に追加するにはどうすればよいですか?
- 23. Silverlightのコントロールに状態を追加するにはどうすればよいですか?
- 24. Visual StudioのツールボックスにMetro UIコントロールを追加するにはどうすればよいですか?
- 25. ナビゲーションバーに複数のコントロールを追加するにはどうすればよいですか?
- 26. このWPFコントロールをWinFormに追加するにはどうすればよいですか?
- 27. createPartControlの後にコントロールを追加するにはどうすればよいですか?
- 28. ASP.NETコントロール宣言のプロパティに改行を追加するにはどうすればよいですか?
- 29. Android Action Toolbarメニューに「FontAwesome」アイコンを追加するにはどうすればよいですか?
- 30. C#でDataGridViewコントロールに行を追加するにはどうすればよいですか?
おかげで、AnjumSKhan、私はすでにこれを試み、それは行いません。私が望むもの私はセル上を一度クリックするだけで、(DataGridTextColumnのように)TextBoxをすぐに編集するための入力を開始したいと考えています。また、入力中にエスケープキーを押すと元のテキストに戻ります。 DataGridTemplateColumnでは、まずセルをダブルクリックする必要があります.Escapeを押すと、元のテキストは復元されません。 – redcurry