問題タブ [wpfdatagrid]

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 投票する
1 に答える
575 参照

wpf - WPFDataGridの読み込みの問題

まず、メインフォームに約7000行のデータグリッドがあります。フォームコンストラクターで(ItemsSourceに)バインドされます。アプリが読み込まれると(1秒未満)、すべてが非常に高速でスムーズに実行されます。ただし、同じデータグリッドを別のウィンドウにロードする場合は、1分以上かかります。ページ間でxamlに違いはありません。これを引き起こしている可能性があります。データグリッドでセルと行の仮想化をオンにするだけでなく、仮想化スタックパネルを使用しています。SQL Serverのプロファイルを作成しましたが、クエリは両方の呼び出しで同時に実行されるため、データベースの問題ではありません。

私は興味を持ち、リストビューを設定し、それを2番目のフォームの同じソースにバインドしましたが、同じシナリオも発生します。

何が問題になる可能性がありますか?

0 投票する
3 に答える
2951 参照

wpf - DataGridCell.IsEditMode?

DataGridCell が現在編集モード (IsSelected ではない) であるかどうかを知るにはどうすればよいですか。たとえば、DataGridTextColumn セルをクリックすると、TextBlock ではなく TextBox になります。これを IsEditMode と呼びます。このモードにトリガーセッターを設定したい。

編集: DataGridCell.IsEditing の一般的なスタイルを設定しようとしましたが、何もしないようです。

ここに私の現在のコードのスニペットがあります:

ありがとう。

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

wpf - WPF データグリッドの個々のチェックボックスを非表示にする

ビュー モデルの CollectionViewSource ビューにバインドされたデータグリッドがあります。データグリッドには CheckBoxColumn と 3 つの TextColumn があり、それぞれがビュー内のアイテムのプロパティにバインドされています。また、個々の行のチェックボックスを非表示にするために使用したいビューアイテムに、ブールプロパティ「Enabled」があります。追加のボーナスとして、これらの行の他の 3 つの列の前景色も変更するとよいでしょう。ただし、主なことは、ユーザーが Enabled == false の行のチェックボックスをチェックできないようにすることです。

編集:以下のスティーブンとアンドリューのリンクに基づいて、以下のコードのように値コンバーターを追加しようとしました。何らかの理由で、それは機能していません。現在、1 つを除くすべてのアイテムの Enabled プロパティが false である 90 個のアイテムを持つ CollectionView ビューでテストしています。したがって、非表示のチェックボックスを含む 89 行と、表示されるチェックボックスを含む 1 行を期待しています。ただし、90 行すべてにチェックボックスが表示されています。何か案は?

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

c# - WPF DataGrid - コードによる動的な行の詳細

ユーザーがグリッド外でアクションを実行するときに、WPF DataGrid に RowDetails を表示する必要があります。ただし、RowDetails がそれに基づいて何になるかを正確に切り替えることができる必要があります。たとえば、[追加] をクリックすると、タイプ AddRowDetailControl の行の下に RowDetails を表示したいのですが、[編集] を選択した場合は、代わりに同じ行の下に別のコントロールを表示したいと思います。これは可能ですか?

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

c# - カスタム行テンプレートでの行選択の原因 - MS WPF DataGrid

一部のデータを表示するためのカスタム行テンプレートがあり、そのテンプレートで SelectiveScrollingGrid を使用していません。外部要素でイベントを処理することは気にしませんが、「選択」動作を引き起こす方法がわかりません。通常、私はアクティブな DataGridCell で MouseLeftButtonDownEvent を発生させることによってそれを引き起こしてきましたが、実際には DataGridCell がないため、DataGridRow へのアクセスのみでその動作を複製する方法に少し当惑しています。

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

wpf - ListCollectionView.CustomSort が遅いのはなぜですか?

私はObservableCollectionWPF に座っている ViewModelsを持っていDataGridます。には次のDataGrid3 つの列があります。

  • 位置列; これは、DataGrid の行の位置を表示する UserControl によって実行時にレンダリングされます
  • 名前列; これは、列の名前を表示する UserControl によって実行時にレンダリングされます (はい、名前を表示する方法に基づいて、これには UserControl が必要ですが、それは余談です)
  • データ列; これは、さらに別の UserControl によって実行時にレンダリングされます。

私の列は次のように定義されています。

したがって、行と名前の列は UserControls であるため、WPFDataGridはそれらをネイティブに並べ替えることができません。そのため、並べ替えを容易にするために、列ヘッダーがクリックされたときにListCollectionView.CustomSort魔法をかけます。

Name 列のカスタム ソーターは次のようになります。

問題は、これが信じられないほど遅いことです。理由がわかりません。に 10 個のアイテムがあるDataGridと、私のアプリケーションは実行中に 3 ~ 4 秒間停止します。ListCollectionView.CustomSortをソートする最も効率的な方法だと思っていましたObservableCollection...どこが間違っていますか?

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

wpf - WPF Datagrid アイテムソースをコレクションのコレクションにバインドする方法は?

WPF DataGrid ItemsSource を ObservableCollections の ObservableCollection にバインドする最良の方法は何ですか?

例えば

MyDataItem は次のようになります。

コレクションのコレクションはぎざぎざではなく、すべて同じ数の「列」が含まれていると想定できます

各列を MyDataItem オブジェクトの「DataValue」プロパティに動的にバインドすることは可能ですか?それとも、バインドしやすい構造にデータをパックする必要がありますか?

0 投票する
3 に答える
11060 参照

wpf - wpfツールキットデータグリッドの行インデックスを表示するにはどうすればよいですか?

DataGridwpfツールキットにインデックス列を追加して、の各データの行インデックスを表示したいだけですDataGrid。どのように?

0 投票する
3 に答える
6527 参照

wpf - WPF DataGridRows を 1 つずつ色付けする

DataGridループを使用して行を1つずつ赤で色付けできるWPFプログラムを作成していますが、for奇妙なことに遭遇しました。DataGridにデータベース テーブルのデータが 40 行を超える場合、すべての行が色分けされるわけではありません。

これが私が使用しているコードです。

他の方法で行を 1 つずつ色付けする他の方法はありますか、またはこれは wpftoolkit の何らかの障害ですか?

0 投票する
9 に答える
16309 参照

wpf - WPF DataGrid:セルがクリックされたときに自動スクロールを停止するにはどうすればよいですか?

問題:
全体が表示され ていない場合DataGrid(水平スクロール バーと垂直スクロール バーが表示されている場合)、部分的に表示されているセルの 1 つをクリックすると、グリッドが自動スクロールしてそのセルが表示されます。そうなってほしくありません。私は次のようにRequestBringIntoView、いじってみました:

しかし、それは何もしません。

私が試したこと:

  • 私のセルはカスタムUserControlsです。RequestBringIntoViewセルを構成するすべてのイベントハンドラーを配置して、イベントを処理しようとしましたが、それ自体UserControlsを処理するだけでは十分ではないのではないかと考えました。これはうまくいきませんでした。RequestBringIntoViewDataGrid
  • DataGridの内部をホストし、のイベントScrollViewerを処理しました。これは実際に機能し、自動スクロール動作を停止しますが、私の場合、 a の内部をホストすることはまったく望ましくないため、別の解決策を考え出す必要があります。ScrollViewerRequestBringIntoViewDataGridScrollViewer

この動作を止める方法がわかりません。何かアイデアはありますか?