問題タブ [datagridcell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
230 参照

c# - 指定された DataGrid の DataGridCell に直接アクセスして操作する方法はありますか? C# Visual Studio 2015 コミュニティ

指定された DataGrid の DataGridCell に直接アクセスして操作する方法はありますか? C# Visual Studio 2015 コミュニティ

できれば行と列を使用して、特定の DataGridCells にアクセスし、コンテンツを確認し、いくつかの属性を変更したいと思います。独房に着いたら、残りのすべてを行うことができます。私は VisualTreeHelper を使用しており、ほとんどそこに到達できます。「ほぼ」と書いているのは、何らかの理由で、2 つのステップの間に MessageBox.Show() を挿入すると、不要なメッセージ ボックスがあるという事実を除いて、すべて正常に機能するためです。具体的には、データグリッドに 1 セットのデータを入力しており、別のセットと一致するデータを持つ各セルの背景と前景を変更したいと考えています。

メッセージ ボックス、コンソールへの書き込み、デバッグ用のローカル変数とウォッチ変数の使用を切り替えます。私が見つけたのは、メッセージ ボックスがないと、DataGridRowPresenter に 0 個の子が表示され、条件が失敗することです。条件を削除すると、範囲外のインデックス例外がスローされます。メッセージ ボックスがある場合、メッセージ ボックスの前に 0 個の子が表示され、メッセージ ボックスの後に 2 個の子 (テスト データでは正しい) が表示され、メソッドの残りの部分が続行され、やりたいことを正確に実行します。

ツリーを適切に走査できるようにするために (メッセージ ボックス以外に) 何かできることはありますか? または、できれば、操作したいセルに直接アクセスする簡単な方法はありますか? DataGrid ではなく DataGridViewer のオプションがあれば、これは簡単だったようです。

ありがとう、エリック

PS StackOverflowでここで回答された非常によく似た質問がいくつかありますが、それぞれが異なる何かに対処しているよう ですコードでDataGridCellのデータオブジェクトにアクセスするにはどうすればよいですか? - ドロップ後に情報を取得しようとしています。WPF の DataGrid のセル値へのイベント アクセスではなく、行と列に基づいてセルを見つけようとしてい ますか? - セル値の素敵なループですが、そのプロセスを使用してセル属性を変更する方法がわかりません (たとえば、セルの内容が「Smith」の場合、フォントを太字に変更します)

これが私がやったことです...

行を取得するためにこれも試しましたが、nullの結果が得られました

0 投票する
1 に答える
301 参照

c# - null値のdatagridcellカスタムテンプレート?

データグリッドにデータを入力しようとしていますが、null セルに特定のテンプレートを持たせたいと考えています。

検索すると、 Color DataGridCell by Cellvalueなど、いくつかの異なる同様の例に出くわしました。この例では、コンバーターを使用して背景色をセルに設定しますが、私が読んだことから、テンプレートを設定するためにコンバーターが機能するとは思いません。

どうすれば適切にそうすることができるかについての提案はありますか? 具体的には、セルの内容が null の場合は常にテキスト NULL を表示しようとしています (空の文字列ではありません)。私が知る限り、テンプレートはこれを行う適切な方法です。

0 投票する
2 に答える
1092 参照

c# - WPF DataGrid 無効セルはテキスト入力を受信して​​います

3 つの列を持つ次の DataGrid を検討してください。

ここに画像の説明を入力

age が -1 になると、対応するセルが無効になります。

理想的には、ユーザーが無効なセルの値を変更できないようにする必要があります。ただし、ユーザーが行 1 にあり、キーボード フォーカスが列 Age の対応するセルにあり、Enter キーを押すと、ユーザーが任意の数字を入力すると、無効なセルがその値を取得します。これは望ましい動作ですか?どうすればこの動作を回避できますか?

ここに画像の説明を入力

問題を再現するには:

  1. Age列の1行目のセルを選択
  2. エンターを押す
  3. 数字を入力

再現可能なコード:

XAML:

対応する cs:

0 投票する
1 に答える
7111 参照

c# - DataGridViewセルでフォーマットマスクを作成するには?

ユーザーが関係のないデータを入力できないように、セルにフォーマット/マスクを作成する必要があります。

列のセルには"MM/YYYY"、日の値がない場合と同様に日付の値が含まれています。

この定義を行うために次のことを試みましたが、成功しませんでした。

DataGridViewまた、プロパティに移動してそこから定義しようとしFormatました。

0 投票する
1 に答える
1611 参照

c# - データグリッド列から単一のテキストボックスに複数のセルの値をバインドします

私の wpf プロジェクトには、データセットによって入力され、いくつかの列と多くの行を含むデータグリッドがあります。Column[1] Rows[i] を反復処理したい (たとえば、データグリッド内のすべての行の column[1] のセル内の値を取得する)。私の質問は、これらのセルの値を単一のテキストボックスにバインドするにはどうすればよいですか? マルチバインディングを使用することが解決策を達成する方法の1つであることは知っていますが、データグリッドを介したテキストボックスのマルチバインディングに関するヘルプは見つかりませんでした. たとえば、次の質問を読みました。

複数の値を単一の WPF TextBlock にバインドする方法は?

DataGridTextColumn で MultiBinding を使用するには?

また、単一の値をバインドすることは達成可能であり、私はすでにそれを行っています。助けていただければ幸いです。前もって感謝します !!

私のXAML: