問題タブ [datagridcomboboxcolumn]

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 に答える
2782 参照

wpf - DataTableをDataGridComboBoxColumnにバインドする方法

DataGridにDataGridComboBoxColumnがあり、WPFウィンドウがあります。以下のように、DataContextをWindowに割り当てています。

以下は、DataGridComboBoxColumnのXAMLです。

mn.EditingElementStyle>

まだグリッド内のコンボボックスは空白を示しています。コンボボックスにデータがリストされていません。次に、Windowsコードビハインドで次のコードを記述しました。動作を開始します。

とにかく、MVVMを使用してXMAL自体でこのケースを処理することはできますか?私はこのアプローチを使うのを嫌がります。

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

datagrid - .NET 4.0 DataGridCombobox SelectionChanged の問題

私のプログラムでは、コンボボックスで項目が選択されるとすぐに、コンボボックスに (ViewModel から) バインドされたオブジェクトが更新されるという要件があります。現在、オブジェクトは、Enter キーを押すか、セルを離れることによって編集がコミットされた場合にのみ更新されます。ユーザーは余分なステップを望んでいません。

私の考えでは、コンボボックス内の項目を選択する行為で CommitEdit() メソッドをトリガーし、次に CancelEdit() をトリガーすることです。ただし、使用できないため、DataGridComboBoxColumn の SelectionChanged イベントにフックする方法を見つけることができないようです。

その他の提案は、ビューモデルでプロパティ変更イベントをリッスンすることですが、セル編集が完了するまでプロパティは変更されません。

ユーザーが Enter キーを押したか、セルを離れたかのように、DataGridCombobox で新しい項目 (インデックス) を選択してセルの編集を閉じる方法を考えられる人はいますか?

注: お客様の制限により、.NET 4.5 を使用できません。

0 投票する
0 に答える
2071 参照

c# - WPF で DataGridComboBoxColumn を DataGrid に動的に追加する

プログラムでテーブルをデータベースモデルからDataGridアプリケーションにロードしています

" " という名前の列をロードしたことを確認するたびにBase、ユーザーが でこの値を編集したいときにDataGridComboBox

Baseしたがって、「 」列を見つけたときはいつでも、次のようにします。

問題は、それを呼び出しdb.SaveChanges()ても何も保存されないことです。そのような状況で私は何をすべきですか?

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

c# - データグリッドでコンボボックスをバインドできませんでした

以下のサンプルでは、​​ を にバインドしようとしましたがPartNumberDataGridComboBoxColumnできませんでした。これどうやってするの?

XAML:

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

wpf - DataGridComboBoxColumnから離れると、その値がクリアされるのはなぜですか?

2つの列を持つDataGridがあります。

  1. DataGridComboBoxColumn
  2. DataGridTextColumn。

データ検証を設定して、一方に値がある場合、もう一方にも値が含まれるまでエラーが発生するようにしました。検証はばかげていますが、検証を行うためのいくつかの簡単な基準を提供するので、この問題を説明できます。

テキストセルに何かを入力し、Tabキーを押してから最初のセルをクリックすると、最初のセルはエラー状態にあることを示します(これは正しいです)。問題は、コンボボックスのドロップダウンから何かを選択し、そのセルから移動すると(Tabキーを押すか、別のセルをクリックして)、コンボボックスに選択した値が表示されなくなることです。プロパティが変更されるたびにソースを更新するようにバインディングを設定しているので、選択するとすぐに選択した値に設定されます。しかし、セルから離れると、プロパティはnullに設定されます。セルがエラー状態でない場合、この動作は表示されません。

誰か助けてもらえますか?これが私のDataGridのXAMLです。

私は自分が間違っていることを想像することはできません。私が抱えているのと同じ問題を説明しているように見えるこの別のリンクを見ましたが、それらのために働いた解決策は私にとってはうまくいかないようです。SelectedValueBindingとSelectedValuePathを追加しましたが、動作は変わりませんでした。

0 投票する
0 に答える
235 参照

mvvm - DependencyProperty を作成しようとすると、管理する FrameworkElement または FrameworkContentElement が見つかりません

DataGridColumnから継承してカスタムを構築していますが、このエラーを出力ウィンドウに表示DataGridBoundColumnしようとするとDependencyProperty

System.Windows.Data エラー: 2: ターゲット要素の管理 FrameworkElement または FrameworkContentElement が見つかりません。BindingExpression:Path=myViewModelProperty; DataItem=null; ターゲット要素は 'CustomDataGridComboBoxColumn' (HashCode=24500989) です。ターゲット プロパティは 'ItemsSourcePath' (タイプ 'Object') です

DataGridColumns の DataContext について読んだことがありますが、このオブジェクトはビジュアル ツリーに属していないと聞いています。しかし、親から DataContext を継承させる方法が見つかりません

これは私が使用したコードです

次に、編集スタイルを作成するメソッドをオーバーライドしました

そして、私はそれをこのように使用しようとしています

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

c# - C#およびWPF-DataGridComboBoxColumnのItemsSourceのバインディングリスト

List(LINQクエリからのデータを含む)をDataGridComboBoxColumnasとしてバインドしたいItemsSourceSelectedValueプロパティはList、全体のデータを使用して他から取得されDataGridます。

XAML:

C#:

ここにバインディングの例がたくさんありますがDataGridComboBoxColumn、これらのどれも私の問題を解決するのに役立ちません。

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

c# - ObservableCollection を使用した DataGridComboboxColumn バインディング

私の小さなプロジェクトは今ではかなり異なって見えます。これで、( Binding Pathを介して)ObservableCollection OC1全体とバインドしたいデータと、ケースを保存する場所( as )があります。プロパティ inは from の 1 つの値です(これは c のケースの 1 つです)。バインディングOKです。DatagridTextBoxColumnsObservableCollection OC2DatagridComboboxColumnItemsSourceBindingSelectedItemDatagridComboboxColumnOC1OC2DatagridTextBoxColumns

XAML:

C#(更新):

DatagridComboboxColumnこれを適切にバインドする方法は?いくつかの例を手伝ってください。

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

vb.net - VB.NETdatagridviewコンボボックスの1対1のマッピング

2つのテキストボックス列と1つのコンボボックス列を持つdatagridviewがあります。コンボボックスのデータソースは、ドロップダウンの値の列挙型にバインドされています。datagridviewのDataSourceは、string、string、およびenumのデータ型を持つカスタムクラスにバインドされています。

最初の2列には値が事前に入力されており、3番目の列でユーザーはドロップダウンから値を選択する必要があります。これまでのところ、これはすべてうまく機能しています。

コンボボックスフィールドは1対1の種類のマッピングである必要があります。つまり、2つのコンボボックスが同じ値を持つことはできません。この種の動作を実装する方法が本当にわかりません。選択した値を残りのドロップダウンから削除する必要がありますか?選択した値をドロップダウンに残し、同じ値を2つ選択したときにエラーを表示する必要がありますか?

任意のアイデアとこれらのアイデアを実装する方法は非常に役立ちます。

ありがとう

複数回使用できる唯一の許容値は「なし」であることに注意してください

ここに画像の説明を入力してください

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

wpf - WPF DataGridComboBoxColumn スタイル

私は正常に動作するものを使用ComboboxColumnDataGridます。

ただし、スタイルの問題があります。
カーソルが列にない場合、ComboboxColumnは のように見えますtextboxColumn。クリックすると、右隅に小さな矢印が表示されるので、コンボボックスのように見えます。

クリックやフォーカスをしていなくても、コンボボックスのように表示したい。だと思いますがElementStyle、正確に何に変更すればよいかわかりません。誰かがこれを行う方法を知っていますか?