問題タブ [wpftoolkit]
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 DataGrid: フィルタリング用の列バインディング プロパティを取得する
DataGrid
(WPF Toolkit から) WPF のフィルタリング機能を開発しようとしています。ユーザーに任意のセルを右クリックしてから選択Filter
してもらいCcontextMenu
、セルの値でグリッドをフィルター処理する必要があります。
MV-VM パターンを試しています。私のウィンドウのデータコンテキストはMainWindowViewModel
、プロパティを持つものTransactions
です。このプロパティは を返しObservableCollection<TransactionViewModel>
、データ グリッドはこのコレクションをアイテム ソースとして使用します。したがって、基本的に各行はバインドさTransactionViewModel
れています (ご想像のとおり、このグリッドにはトランザクションが一覧表示されます)。MainWindowsViewModel
これはICollectionView
、現在選択されている行のフィルタリングと追跡に使用されます。のDataGrid
プロパティIsSynchronizedWithCurrentItem
は「true」に設定されているためmyCollectionView.CurrentItem
、現在選択されている が表示されTransactionViewModel
ます。
まだ知っておく必要があるのは、どの列でフィルタリングする必要があるかということだけです。これは、ユーザーがコンテキスト メニューをクリックした場所によって異なります。CommandProperty
そのため、コンテキスト メニュー項目を使用してこの情報を渡そうとしています。そして、ここで私は本当の問題を抱えています。私はこれを試しました:
これは本当に醜いですが、これはDataGridTextColumn
s で機能します。残念ながら、私もDataGridTemplateColumn
s を持っていますが、それらは機能しません (実際のセル テンプレートに到達する必要があるため、そこではパスが異なります)...
では、どうすればこの機能を実装できますか? おそらく全体の方法が間違っていますか?それに関する貴重な例は見つかりませんでした。DataGrid
私が見つけた唯一のものは、何らかの理由でまったく機能しない Codeproject での WPFオートフィルターの実装です...
ありがとうございました。
wpf - WPF Toolkit の DataGrid のテンプレート列をソート可能にするにはどうすればよいですか?
私のアプリケーションはDataGrid
、WPF Toolkit の を使用しています。標準の列ヘッダーはクリック可能です (マウスでそれらの上に移動すると、いくつかの効果も表示されます) が、テンプレート列のヘッダーにはこの動作がありません。ヘッダーをクリックしても並べ替えイベントは発生せず、視覚効果もありません。
並べ替えを行うにはどうすればよいですか (または、どのような情報を提供する必要がありDataGrid
ますか)?
よろしく、 オリバー・ハナッピ
c# - WPF ツールキットのデータグリッド用に C# でプログラムによって列を作成するにはどうすればよいですか?
XAML で WPF Toolkit DataGrid を作成する多くの例を見てきましたが、特定のタグを記述することが可能で、記述内容に応じていくつかの列、行などがあります。
XAMLで作成された空の(列も行も何もない) WPF Toolkit DataGrid があるとしましょう。
助けてくれてありがとう!
c# - WPF Toolkit Datagrid - 選択をオフにするにはどうすればよいですか?
オブジェクトにバインドしている WPF のデータグリッドがあります。
そこに DataGridCheckBoxColumn があり、ユーザーが必要なものにチェックを入れてチェックできるようにします。問題は、2回クリックする必要があることです.1回は選択し、もう1回はチェック/チェックを外します。一体どうやってこれをオフにするのですか、私はこれに対する答えを見つけるために長い間探してきました. データグリッドには SelectionMode プロパティと SelectionUnit プロパティがあります - どちらも「なし」または「立ち去る」を受け入れません
どんな助けでも大歓迎です!私のコードは参考のために以下にあります
wpf - 順番でグループ化?
WPFではグループ化できますが、デフォルトでは昇順でグループ化されています。グループの並べ替え (昇順または降順) を制御できるようにする必要があることの 1 つです。例えば:
グループ 1
- 項目 1.1
- アイテム1.2
- アイテム1.3
グループ 2
- 項目 2.1
- 項目 2.2
また、次のように切り替えることもできます。
グループ 2
- 項目 2.1
- 項目 2.2
グループ 1
- 項目 1.1
- アイテム1.2
アイテム1.3
/li>
c# - C# WPF ツールキット:データグリッドのセルを編集可能にするにはどうすればよいですか?
Microsoft Visual Studio 2008 で作成されたこの小さな WPF C# プログラムのコードに注意してください。
.xaml
.cs
このプログラムは、ヘッダー付きの 10 列と空の行を持つ WPF ツールキット データグリッドを表示するだけです。
空の行の特定のセルを選択してからクリックして編集すると、プログラムがクラッシュするという問題があります。Visual Studio に、「現在の場所で使用できるソース コードはありません」というメッセージ ボックスが表示されます。データグリッドのセルを編集可能にする方法を教えてください。
例外とスタックトレースは次のとおりです。
System.InvalidOperationException は処理されませんでした Message="'EditItem' はこのビューには許可されていません。"
ソース="プレゼンテーション フレームワーク"
StackTrace: C:\dd\WPF_1\src\wpf\src\ の System.Windows.Controls.ItemCollection.System.ComponentModel.IEditableCollectionView.EditItem(Object item) で Microsoft.Windows.Controls.DataGrid.EditRowItem(Object rowItem) でControlsPack\WPFToolkit\DataGrid\Microsoft\Windows\Controls\DataGrid.cs: C:\dd\WPF_1\src\wpf\src\ControlsPack\WPFToolkit\ の Microsoft.Windows.Controls.DataGrid.OnExecutedBeginEdit(ExecutedRoutedEventArgs e) の行 3396 DataGrid\Microsoft\Windows\Controls\DataGrid.cs: C:\dd\WPF_1\src\wpf\src\ControlsPack\WPFToolkit\DataGrid の Microsoft.Windows.Controls.DataGrid.OnExecutedBeginEdit(Object sender, ExecutedRoutedEventArgs e) の行 2208 \Microsoft\Windows\Controls\DataGrid.cs: System.Windows.Input.CommandBinding.OnExecuted (オブジェクト送信者、ExecutedRoutedEventArgs e) at System.Windows.Input.CommandManager.ExecuteCommandBinding(Object sender, ExecutedRoutedEventArgs e, CommandBinding commandBinding) at System.Windows.Input.CommandManager.FindCommandBinding(CommandBindingCollection commandBindings, Object sender, RoutedEventArgs e, ICommand command, Boolean execute) at System.Windows.Input.CommandManager.FindCommandBinding(オブジェクト センダー、RoutedEventArgs e、ICommand コマンド、ブール値の実行) System.Windows.Input.CommandManager.OnExecuted(オブジェクト センダー、ExecutedRoutedEventArgs e) で System.Windows.UIElement.OnExecutedThunk(オブジェクト センダー) 、System.Windows.Input.ExecutedRoutedEventArgs.InvokeEventHandler (デリゲート genericHandler、オブジェクト ターゲット) で System.Windows.RoutedEventArgs e) を実行します。System.Windows.RoutedEventHandlerInfo.InvokeHandler(オブジェクト ターゲット、RoutedEventArgs routedEventArgs) の InvokeHandler (デリゲート ハンドラー、オブジェクト ターゲット) System.Windows.EventRoute.InvokeHandlersImpl (オブジェクト ソース、RoutedEventArgs args、Boolean reRaised) で System.Windows.UIElement.RaiseEventImpl( System.Windows.Input.RoutedCommand.ExecuteImpl (オブジェクト パラメーター、IInputElement ターゲット、Boolean userInitiated) の System.Windows.UIElement.RaiseEvent(RoutedEventArgs args、Boolean trusted) の DependencyObject 送信者、RoutedEventArgs args)。 C:\dd\WPF_1\src\wpf\src\ControlsPack\WPFToolkit\DataGrid\Microsoft\Windows\Controls\DataGrid.cs: C:\dd\WPF_1 の Microsoft.Windows.Controls.DataGridCell.OnAnyMouseLeftButtonDown(MouseButtonEventArgs e) の行 3059 \src\wpf\src\ControlsPack\WPFToolkit\DataGrid\Microsoft\Windows\Controls\DataGridCell.cs: C:\dd\WPF_1\ の Microsoft.Windows.Controls.DataGridCell.OnAnyMouseLeftButtonDownThunk (オブジェクト送信者、MouseButtonEventArgs e) の 748 行目src\wpf\src\ControlsPack\WPFToolkit\DataGrid\Microsoft\Windows\Controls\DataGridCell.cs:System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(デリゲートgenericHandler、オブジェクトgenericTarget)の726行目System.Windows.RoutedEventArgs.InvokeHandler( System.Windows.RoutedEventHandlerInfo.InvokeHandler(オブジェクト ターゲット、System.Windows.UIElement.ReRaiseEventAs(DependencyObject 送信者、RoutedEventArgs 引数、RoutedEvent newEvent) で System.Windows.UIElement.CrackMouseButtonEventAndReRaiseEvent(DependencyObject 送信者) で、MouseButtonEventArgs e) で System.Windows.UIElement.OnMouseDownThunk(オブジェクト送信者、MouseButtonEventArgs e) で System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(デリゲート genericHandler、オブジェクト genericTarget) で System.Windows.RoutedEventArgs.InvokeHandler(デリゲート ハンドラー、オブジェクト ターゲット) ) System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) で System.Windows.System.Windows.UIElement.RaiseEventImpl(DependencyObject 送信者、RoutedEventArgs args) の EventRoute.InvokeHandlersImpl (オブジェクト ソース、RoutedEventArgs args、Boolean reRaised) System.Windows.UIElement.RaiseEvent (RoutedEventArgs args、Boolean trusted) の System.Windows.Input. InputManager.ProcessStagingArea() で System.Windows.Input.InputManager.ProcessInput(InputEventArgs 入力) で System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) で System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode モード, System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) で System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter) で System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback) 、オブジェクト引数、ブール値 isSingleParameter、デリゲート catchHandler) を System.Windows.Threading.Dispatcher.WrappedInvoke で (デリゲート コールバック、オブジェクト引数、ブール値 isSingleParameter、デリゲート catchHandler) を System.Windows.Threading.Dispatcher で使用します。MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32) での System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority 優先度、デリゲート メソッド、オブジェクト引数) での InvokeImpl (DispatcherPriority 優先度、TimeSpan タイムアウト、デリゲート メソッド、オブジェクト引数、Boolean isSingleParameter) System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame フレーム) の MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame フレーム) の msg、IntPtr wParam、IntPtr lParam) .Windows.Threading.Dispatcher.Run() at System.Windows.Application.RunDispatcher(Object ignore) at System.Windows.Application.RunInternal(Window window) at System.Windows.Application.Run(Window window) at System.System.AppDomain の C:\Users\Frank\Documents\Visual_Studio_2008\Projects\WpfDatagridTest\WpfDatagridTest\obj\Debug\App.g.cs:line 0 の WpfDatagridTest.App.Main() での Windows.Application.Run()。 System.AppDomain.ExecuteAssembly の _nExecuteAssembly (アセンブリ アセンブリ、String[] 引数) (Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() の System.Threading.ThreadHelper.ThreadStart_Context(Object) で状態) System.Threading.ExecutionContext.Run (ExecutionContext executionContext、ContextCallback コールバック、オブジェクト状態) で System.Threading.ThreadHelper.ThreadStart() InnerException:\Users\Frank\Documents\Visual_Studio_2008\Projects\WpfDatagridTest\WpfDatagridTest\obj\Debug\App.g.cs: System.AppDomain._nExecuteAssembly の行 0 (アセンブリ アセンブリ、String[] 引数) System.AppDomain.ExecuteAssembly(String) でassemblyFile、Evidence assemblySecurity、String[] args) の Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() の System.Threading.ThreadHelper.ThreadStart_Context(オブジェクト状態) の System.Threading.ExecutionContext.Run(ExecutionContext executionContext、ContextCallback コールバック、オブジェクト状態) System.Threading.ThreadHelper.ThreadStart() で InnerException:\Users\Frank\Documents\Visual_Studio_2008\Projects\WpfDatagridTest\WpfDatagridTest\obj\Debug\App.g.cs: System.AppDomain._nExecuteAssembly の行 0 (アセンブリ アセンブリ、String[] 引数) System.AppDomain.ExecuteAssembly(String) でassemblyFile、Evidence assemblySecurity、String[] args) の Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() の System.Threading.ThreadHelper.ThreadStart_Context(オブジェクト状態) の System.Threading.ExecutionContext.Run(ExecutionContext executionContext、ContextCallback コールバック、オブジェクト状態) System.Threading.ThreadHelper.ThreadStart() で InnerException:Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() で ExecuteAssembly (String assemblyFile, Evidence assemblySecurity, String[] args) System.Threading.ThreadHelper.ThreadStart_Context(オブジェクト状態) で System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback)コールバック、オブジェクト状態) で System.Threading.ThreadHelper.ThreadStart() InnerException:Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() で ExecuteAssembly (String assemblyFile, Evidence assemblySecurity, String[] args) System.Threading.ThreadHelper.ThreadStart_Context(オブジェクト状態) で System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback)コールバック、オブジェクト状態) で System.Threading.ThreadHelper.ThreadStart() InnerException:
c# - C# WPF データグリッド: ItemsSource
ItemsSource が設定されたら (XAML で設定されます)、WPF ツールキット データグリッドの列のプロパティを変更する方法を知りたいですか? たとえば、特定の列の IsReadOnly プロパティを true に設定したいとします。
基本的に、私が知りたいことは2つあります。
-ItemsSource が設定された後、特定の列にアクセスするにはどうすればよいですか?
-ItemsSource が設定された後、特定の列のプロパティを変更するにはどうすればよいですか?
c# - C#WPFデータグリッド:列数は常に0に等しい
C#でWPF Takelitデータグリッドを作成し、ItemsSourceをXAMLで設定しました。列は自動的に生成されます。
このWebサイトにあるものとほとんど同じように、ObservableCollectionを使用するデータグリッドを実行しようとしています。
下部にダウンロードできるサンプルがあります(ここにリンクがあります)
私の問題は、特定の列の特定のプロパティ(例:Datagrid.Columns [index]。Property)を変更しようとしていることですが、列数が常に0に等しいため、これは機能しないようです。したがって、できません。 Columnsコレクションには何もないように見えるので、使用したいインデックスを使用してプロパティを変更します。ただし、実行時に表示される列があります。
では、列数が0に等しい可能性があるのはなぜですか?
と
自分の状況で特定の列のプロパティを変更するにはどうすればよいですか?
c# - DataTable の変更
状況:
こんにちは!WPF ツールキットの DataGrid に MS Access データベースを設定しようとしています。
これが私が今持っているものです(動作します):
上記のコード サンプルは、MS Access データベースを利用して WPF ツールキットの DataGrid を読み込みます。
私がやりたいことは、最初に DataGrid に列を挿入できるようにすることです。この列は、行番号を書き込むために使用されます。私がうまくいくと思うのは、テーブル変数 ( DataTableオブジェクト) を変更することです。
質問:
では、テーブル変数に列を挿入し、その新しい列に各行の行番号を追加し、データベースからのすべてのデータを DataGrid に含めるにはどうすればよいでしょうか?
wpf - すべての列ヘッダーでテキストの折り返しを有効にするにはどうすればよいですか?
DataGrid
他のデフォルトのヘッダー機能を無効にせずに、 のすべての列ヘッダーでテキストの折り返しを有効にするにはどうすればよいですか? 必要な列のサイズ変更、ソート方向インジケーターなど。
これを行う方法はありますか?