問題タブ [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.
c# - コンテンツがクリックされたときにテンプレート列の DataGrid セルを選択する
だから、私はMySQLベースのプログラムを構築しています。整数から倍精度、日付、文字列に至るまで、多数のデータ列があり、UI とプログラミングの両方の観点から一貫性を保つために、テンプレート列からテーブル全体を作成することにしました。このシステムの重要なポイントは、ユーザーがセルを出るときに新しい情報をデータベースに自動的に送信する必要があることです。過去にこれに対応するために(他の受動的な問題があった場合)、選択された列と行を見つけ、座標を基礎となるデータテーブルに渡し、それを使用して更新文字列を作成し、それらをデータベースに更新しました(これは少し単純化しています)。
これは私を私の新しい問題に導きます。以前はテキスト列を使用していましたが、現在はテキスト ボックス (またはマスクされたテキスト ボックス) を含むテンプレート列を使用しています。テキスト列は、セルがクリックされたときに選択座標を取得するために、本質的にセル選択を処理しますが、テンプレート列はビジュアル ツリーをそれほど親切に処理せず、セルが選択されない限りコンテナー セルを選択しません。タブまたはその他の方法でナビゲートされますが、クリックされたときではありません。テキストボックスがクリックされたときにビジュアルツリーを手動で操作してセルを手動で選択しようとしましたが、役に立ちませんでした。奇妙な点は、スクロールして移動しなければならない列 (同じ列) をクリックするまで、プロセスが機能することです。この問題にアプローチする方法について何か提案はありますか? 私の XAML とコード ビハインドのサンプルを次に示します。
XAML:
コード ビハインド:
少し簡単に収まるようにすべてを単純化しようとしましたが、重要な部分は残しました。
c# - フォーカスされていないときにデータ グリッド セルの小数点以下を表示する
データグリッドを備えた wpf アプリケーションがあります。そのデータグリッドには、セルに二重の数字が含まれており、小数点以下が 15 ~ 16 の場合があります。フォーカスが失われたときに小数をすべて非表示にして、2 または 3 だけを表示したいのですが、精度を失いたくないので、実数を保存したままにします。同じことがフォーカスされ、すべての小数が表示されます。
カスタム データグリッド セルを作成し、その変更を OnGotFocus()/OnLostFocus() メソッドで行うことを考えましたが、これが最善の方法であるかどうかはわかりません。事前に感謝し、私の英語について申し訳ありません.
c# - コードで controltemplate を作成し、バインディングでコンバーターを指定する方法
これらの回答を確認しましたが、探している情報はありませんでした:
ツリービューのコードで WPF データテンプレートをセットアップする方法は?
コードでコントロール テンプレートを設定するには?
WPF で ControlTemplate をプログラムで作成する
ここに私のコードの要点があります:
ControlTemplate では、バインドはコメントで言及されているコンバーターを参照します。コンバーターが xaml で DataGrid のリソースとして定義されている場合、実行時エラーが発生します: {"'requiredDisplayBrushConverter' という名前のリソースが見つかりません。リソース名は大文字と小文字を区別します。"
} または、実行時に DataGrid のリソースに追加しますか?
それとも何か他のテクニックがありますか?
ありがとう -
c# - WPF スタイルから現在の DataGridCell 情報を渡す方法
私は TargetType=DataGridCell のスタイルを持っています。これには ContextMenu が含まれています。CommandParameter を介してそのコマンドに DataGridCell 情報を渡す必要があります。
クラスのソースコード
現在の DataGridCell 情報をそのコマンドに渡す方法。助けてください...
wpf - WPFでDatagridのセルデータ値を取得するには?
私は WPF に非常に慣れていないので、Datagrid
コントロール付きのデータ入力フォームを作成したいと考えています。セルデータ値を取得してデータベースに保存する方法にこだわっていますか?
窓のように、私たちはそれを通り抜けていgridview1.Rows[0].Cells[0].value
ました。
これをWPFで取得する方法は?
c# - WPF DataGrid テキストの垂直方向の配置
私は WPF DataGrid を使用しています。DataGridTextColumns の内容を取得して、表示されたテキストを垂直方向に中央揃えにしようとしています。
現在、私のセル値はhttp://imgur.com/nkbE7Wtのようになっています。ご覧のとおり、それらはセルの上部に向かって垂直に配置されています。
私は DataGridCells のスタイルにテンプレートを追加しようとしましたが、これは機能し、次のようにテキストを中央に配置します: http://imgur.com/TCo6RCa。DataGridCells のスタイルは次のとおりです。
この追加されたテンプレートは、基本的に、表示方法に関して私が望んでいることとまったく同じです。ただし、問題があります。ユーザーが任意のセルをクリックして行を強調表示する場合、実際に DataGrid を取得して行を強調表示するには、スタイルに設定されている境界線内をクリックする必要があります。
Snoopを使用すると、境界が問題の原因であることがわかります。これ: http://imgur.com/9pD0W5Cは、Snoop が境界線として表示するものであり、クリックしたときにマウスが赤い強調表示された行にあるか、その行にない限り、行は選択/強調表示されません。
テンプレートを変更して、境界線内だけでなく、セルの任意の部分がクリックされたときに行を強調表示できるようにする方法はありますか?
または、セル内のテキストを垂直方向に中央揃えにする簡単な方法はありますか?
私はすでにTextElement.VerticalAlignment
自分のスタイルで設定しようとしましたが、これにより、データグリッド内に奇妙に見える余分な行がいくつか発生します。