問題タブ [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.
wpf - WPF DataGridCell を動的にスタイルする方法
次のように定義された itemsSource を持つ DataGrid があります。
...
...
次に、列/セルの各タイプのクラスがあります。
次に、各列の CellStyle を次のように設定します。
各列のコンストラクターで:
これにより、実際の DataGridCell の Background プロパティをセルの表現の Background プロパティにバインドできるため、いつでも簡単にセルの背景を変更できます。
今、私の主な問題は、この方法で dataGrid が地獄のように遅くなることです...各セルにバインドする約 15 個のプロパティがあり、100 列 x 20 行を表示すると、dataGrid を表示するのに 1 秒以上かかり、次に、水平方向にスクロールすると約 1 秒で更新されます (私の画面では一度に 20 列しか表示できず、dataGrid の仮想化が有効になっています)。
スタイリングを取り除けば、応答時間はまだ私が望むよりも長くなりますが、私はそれでやり遂げることができます.
これを行うためのより良い方法はありますか?
私も Xaml でこのスタイルを試してみましたが、列の仮想化にうまく対応していないようでした。つまり、セルの背景を緑に設定してから、ページ全体を右にスクロールすると、セルが緑に塗ったセルは、赤である必要がある場合は緑のイベントを取得します。値は、現在の行をセルを含む行に移動するまで更新されません...さらに、パフォーマンスがまったく向上していないようです...
この問題について何らかの種類/ヒント/以前の経験があれば共有していただきありがとうございます.
編集:達成したい一般的な効果:
- ダイナミクス列を含む dataGrid (列の数とタイプは実行時にのみ認識されます)
- いつでも、単一のセルのスタイル プロパティを変更できます: フォント (ファミリ、サイズ、スタイル、ウェイト、適用されている場合は装飾)、前景、背景、textAlignment など...
これは私が達成しなければならないことです。列の仮想化がオンになっていると、REAL dataGridCells はまだ表示されていない (仮想化されている) 可能性があるため、操作できず、プロパティ値の変更が失われることがわかりました。だから私はこの「ハック」に行きました: 私は実際の dataGridCell のスタイルのすべての単一のプロパティを「論理的な」ものにバインドし、論理的なものを変更します。しかし、これは遅いです。
私が自分自身をもう少しうまく説明できたことを願っています。
c# - Silverlight で DataGridCell からブリードアウトするテキストを取得するが、DataGrid からブリードアウトしない
ここでは奇妙で具体的な問題がありますが、Silverlight のオブジェクト (私の場合は TextBlock) を DataGridCell からブリードアウトさせ、含まれている DataGrid からブリードアウトさせないためのクリーンな方法を見つけようとしています。
例えば:
テキスト自体が2つの異なるセルにあることを正確には知りませんが、テキストを重ねたいと思います。
私が避けたいのはこれです:
この場合、次のようにしたいと思います。
現在、TextBlock が PopUp コントロール内に含まれるように CellTemplate を変更しようとしましたが、PopUp は常に開いています。ただし、PopUp を使用すると、DataGrid の外側に出血するため、これは機能しません。これを回避するために、DatGrid にクリップの四角形を指定しようとしましたが、うまくいきませんでした。PopUp は DataGrid の外側にまだ表示されています。
誰かがこの方法に対するクリーンでシンプルな解決策を持っていることを願っています。最良のケースは、私が気付いていないある種の魔法の DataGrid.ColumnSpan または DataGridColumn.ColumnSpan です...
c# - DataGridで複数のセルを選択し、Excelシートに出力します
数百行と2列のデータを持つDataGridがあります。DataGridの特定の行と特定のセルをプログラムで選択し、Excelワークシートに出力する必要があります。いくつかの調査を行った後、セル値を取得する唯一の方法はヘルパー関数を作成することであるように思われ、1つのセル値を取得するたびにヘルパー関数が実行されます。
DataGridの特定のセルの値を取得するためのより簡単で迅速な方法はありますか?または、各セルの値をDataGridに移動するときに同時に配列に格納し、その配列をDataGridではなくExcelに出力することになっていますか?
wpf - WPF データグリッド - テキスト入力の選択、無効化を有効にする
チェックボックス列、ハイパーリンク列、テキスト列を備えた C# WPF Datagrid があります。私の DataGrid は DataTable にバインドされています。列は自動生成されませんが、列の数が事前にわからないため、コードで動的に作成します。セル内のテキストを選択できるようにしたいのですが (ctrl+c の目的で)、編集を無効にします。テキストを変更したくありません。誰でも助けることができますか?
wpf - DataGridCell の値に基づくトリガー
データグリッドにいくつかのセルがあり、値が 0 の場合に特定の列のセルを赤で強調表示したいと考えています。これにアプローチする方法がわかりません。
私はこの質問を見てきました: WPF: 条件を満たしている DataGrid のすべてのセルを強調表示する方法は? しかし、どの解決策もうまくいきませんでした。
スタイルトリガーを使用すると、トリガーはプロパティに適用されるようになっているようです。何も起こらないようなことをすると(コンテンツには単純な値以上のものがあるためだと思います)。
最後に提案された解決策で、コンパイル時の問題が発生しました。これは、VS にしばらくの間存在していたバグの兆候であると思われました:カスタム バインディング クラスが正しく機能していません。
これを達成する方法はありますか?
誰にもアイデアはありますか?
visual-studio-2008 - DataGridView、DataGridColumn、DataGridCellをExcelの特定の動作を模倣させることは可能ですか?
テクノロジ:Visual Studio .NET 2008
datagridviewの列をExcelと同じように動作させる方法を誰かが知っているかどうか疑問に思います。
現在、データは次のようになっています。
私が見たいのは
ただし、キャッチは、使用していないときはデータを「B」のように見せたい(フォーカスがない、マウスがセルにない)、使用しているときはデータを「A」のように見せたいということです。(セルにはフォーカスがあり、列全体ではありません。)
特定のセルを実行できない場合は、それで問題ありません。「dataGridviewにフォーカスがある場合、すべてのデータはAのように見えますが、それを処理できます。
何か案は?
wpf - TextBlockを使用したWPF DataGridCellテンプレート - バインディング?
のをに置き換えてContentPresenter
、コンテンツに適したものを検索します。DataGridCell
Template
TextBlock
Binding
通常の方法はText="{TemplateBinding Content}
-TextBlock
動作しません。またText="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Content, Mode=TwoWay}"
、正しく動作しません。
他のアイデアはありますか?
silverlight - DataGridCellコンテンツテンプレートセレクターSilverlight
サーバーから取得した動的データ(カスタムDataRowsのコレクション)を含むDataGridがあります。DataRowには、インデクサーと、バインディングのデータ行全体を返すプロパティDataがあります(以下を参照)。
DataGridの各列を次のように作成します。
私がする必要があること:コンバーターが返すデータに応じて、さまざまな方法でDataGridCellsのコンテンツを表示する必要があります。
テンプレートセレクター(ContentControlを継承する)を作成し、次のようにDataGridCellのContentTemplateプロパティに配置しました。
この場合、セレクターのコンテンツとしてDataRow全体があり(列が行の1つの項目にバインドされているため、理由がわかりません)、コンバーターは呼び出されません。データ行全体がデフォルトのDataContextであるため、この場合、コードビハインドバインディングは単に無視されていると思います。
そこで、テンプレートセレクターをDataGridCellのControlTemplateに配置しようとしました。
しかし、この場合、セレクターのコンテンツとして空のテキストを含むTextBlockがあります(SHOCKED)。コンテンツが変更された後、コンバーターが呼び出されます。バインディングのデータに従ってテンプレートを選択するテンプレートセレクターを作成するにはどうすればよいですか(コンバーターが呼び出された後)?
wpf - DataGrid タブ ナビゲーション スキップ列
WPF にテンプレート列を含むデータグリッドがあります。グリッド内のいくつかの列は読み取り専用で、フォーカスされている他の列は編集可能になります (ラベル、テキストボックス、チェックボックスなどが表示される代わりに)。
私が達成したいのは、グリッドの列をタブで移動しているときに読み取り専用列がスキップされることです。
これを達成する方法を知っている人はいますか?
ありがとう!ヴラダン
いいえ、機能していません:(
これが完全なセルです... KeyboardNavigation.IsTabStop と IsTabStop だけで試してみました...うまくいきませんでした
silverlight - DataGridCellの背景をSilverlight4のコードビハインドから変更します
入力した区切り文字を使用してコピーしたテキストを解析できるSilverlightアプリを作成しています。データが解析されてグリッドにドロップされた後、ユーザーはデータを「スクラブ」することができます。これにより、セルの現在の値が列の許可された値と比較され、最適な推測が選択され、ItemsSourceプロパティを介してデータがグリッドに再バインドされます。
私の問題は、「スクラブ」された各セルの座標がわかっていることです。このセルを強調表示するか、背景色を変更したいと思います。私が見る限り、DataGridCellの背景を個別に設定できますが、DataGridCellにアクセスする方法がありません。グリッドの列と行にアクセスできますが、期待どおりにDataGridCellにアクセスできないようです。ItemsSourceが設定された後にDataGridCellにアクセスする方法はありますか?