問題タブ [ieditablecollectionview]

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

wpf - WPF: IEditableCollectionView と CanAddNew および空のコレクション

wpf datagrid と IEditableCollectionView にいくつかの問題がありました (ただし、この質問は IEditableCollectionView と ItemsControl の使用に適用されます) 項目のないコレクションがある場合、IEditableCollectionView はどの項目を挿入する必要があるかを判断できないため、ここCanAddNew=falseで解決策を見つけました(コメントの奥深くに埋もれています)それは次のようになります:

このように ObservableCollection から派生する場合

初期コレクションが空の場合、ビューに NewItemPlaceHolder が表示されないことがわかります。これは、設計時に PersonsList が型 T を解決できないためです。私にとってうまくいく回避策は、次のようにタイプ T をパラメーターとしてクラスに渡すことです

このアプローチは、コレクションが空の場合でも NewItemPlaceHolder を配置します。

AddNew リクエストを取得する必要がある作成するタイプを IEditableCollectionView に通知するコレクションに実装できるインターフェイスがあるかどうか疑問に思っています。

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

wpf - 'EditItem'はこのビューでは許可されていません-データバインディングの問題

カスタムリストを使用して、データグリッド上のWPFでデータバインディングを実行しようとしています。私のカスタムリストクラスには、タイプのプライベートデータリストが含まれていますList<T>。このリストを公開することはできませんが、インデクサーは個々のアイテムを設定および取得するために公開されています。私のカスタムクラスは次のようになります。

データはバインドされていますが、編集しようとすると'EditItem' is not allowed for this viewエラーが発生します。Webで広範囲な検索を行ったところ、IEditableCollectionViewインターフェイスも実装する必要があるかもしれないことがわかりました。誰かが私がこのインターフェースを実装する方法についての指針を与えるか、カスタムリストでデータバインディングを行うための他のより良い方法を提案するのを手伝ってくれますか?

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

wpf - WPF: ICollectionView や IEditableCollectionView などのビューの使用方法

構文は理解できますが、実際の使用方法はわかりません。多くの基本的なシナリオでは明らかですが、少し高度になるとすぐに頭が痛くなり始めます。

たとえば、多くの異なるビューがありますが、多くの場合、どれを使用すればよいか明確ではありません。また、常に 1 つだけを使用するか、組み合わせて使用​​する必要があります。ビューを ItemsControls の項目ソースとして使用しますか?

シナリオあげます。アプリで情報を表示し、編集および新規追加を許可する必要があるデータベースの項目があります。アイテムは階層を形成し、モデルはさまざまなタイプです。したがって、トップレベルには子供がいて、さらに子供がいます。

TreeView またはいくつかの項目コントロールで表示できます。ここでの問題は、チルレンのリストを返すルート要素の children プロパティにバインドする傾向があることです。editview.addnew() を呼び出したり、子をすぐにフィルタリングしたりできないように、子は実際にはビュー内にありません。問題は、子供たちもビューに含まれていること、およびその子供たちなどをどのように確認するかです。モデルがビューを返す必要がある場合、子の型ごと、または親ごとに個別のビューを作成する必要がありますか?

もう 1 つのことは、編集を許可する場合、コレクションを IEditableCollectionView に直接配置するか、最初に ICollectionView でラップする必要があるかということです (なぜそれが良いのですか)。

純粋な基本ではないビューを使用するための適切なガイドはありますか?

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

.net - グリッドに表示される常に更新されるコレクションをフィルタリングする方法は?

「質問」を表示する WPF アプリケーションがあるとします。質問には、「オープン」や「回答済み」など、さまざまなステータスがあります。質問はObservableCollectionに保存され、 DataGridに表示されます。

「未解決」の質問と「回答済み」の質問を切り替えるトグル ボタンを上部に配置したいと考えています。ユーザーが「開く」ボタンをクリックすると、グリッドには未解決の質問のみが表示され、ユーザーが「回答済み」ボタンをクリックすると、回答済みの質問のみが表示されます。

これらのオブジェクトは、別のスレッドによって常に (毎秒) 更新されています。さらに、それらのステータスは別のスレッドから変更される可能性があり、グリッドを更新する必要があります。

このコレクションをフィルタリングする良い方法は何ですか? 現在、質問のステータスが変更されたときに ICollectionView を使用して Refresh() を呼び出していますが、「AddItem/EditItem」トランザクションが発生しているときに更新を呼び出すとエラーが発生します。

ありがとう。

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

c# - IEditableCollectionView によって追加されるオブジェクトの種類は何ですか?

IEditableCollectionView addNew() メソッドを使用してオブジェクトを追加するのはかなりまともです。ただし、私が持っている汎用コードでどれだけうまく機能するかはわかりません。

基本クラスの ObservableCollection があります。ユーザーが見たいものに応じて、DerivedA または DerivedB (または複数の他の派生型クラス) で埋めることができます。1 つ以上のタイプを持つことはありません。これについて次の質問があります。番号 1 が主な質問です。

1) addNew() メソッドが呼び出されたときに追加されるオブジェクトのタイプ。私はベースを推測していますが、確かではありません。Base が抽象の場合はどうなりますか? とにかく、特定のタイプを追加することを確認できますか、それとも最も関連性の高いタイプをすでに追加するように実装されていますか?

2) 派生クラスを使用するときに ObservableCollection を使用する際に問題が発生することを求めていますか?

3) 派生クラスはすべて IEditableObject を個別に実装しますが、Base は実装しません。実装するときにメソッドを定義する必要があると思ったので、私の愚かさのせいです。それらを抽象として定義し、派生クラスでそれらをオーバーライドできますか? これを行わないと、IEditableCollection で問題が発生します。

アップデート:

項目 3 を正常に修正しました) 基本クラスは iEditableObject を実装し、抽象仮想メソッドをその派生クラスにスローします。リストが派生アイテムで満たされていても、addNew メソッドは機能しません。

私は1つの半解決策を見てきました。.Net Framework 4.0 は、追加する項目を定義できる AddNewItem という新しいメソッドを実装しています。パラメーターのないコンストラクターと基本クラスの問題を解決する必要があります。しかし、私は3.5で働いています

私にできることはありますか?

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

wpf - ListViewCollection を使用した WPF リストビュー - リストビューがコレクションの変更を反映していません。

ListCollectionView にバインドされたリストビューがあります。LCV には常に単一のソート記述があります。この方法でコレクションを更新しています:

ただし、リストビューのアイテムには何も起こりません。リストを並べ替えると、変更が反映されます。コレクションの Refresh() もリストビューを更新しますが、それはダイナマイトの棒を使って炭酸飲料の缶を開けるようなものです。

誰にもアイデアはありますか。上記のコードは、ネット上で見られる例のように見えるので、それは問題ではないと思います。よくある間違いはありますか? 私はそれを機能させていましたが、今は機能していません。何が壊れたのかわかりません。

前もって感謝します。

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

c# - IEditableCollectionViewを使用する理由

私は自分がクランクアウトしなければならないプロジェクトを持っています(締め切り前に仕事を辞めた従業員のおかげで)。

彼はWPFで働いていました。インターフェイスはかっこいいように見えましたが、会社の古いデータアクセスDLLからデータを収集することはできませんでした。(DLLの書き換えは素晴らしいアイデアですが、期限までに残された短期間では実現できません)データの収集が重要でした!

プロジェクトは私に投げかけられましたが、私はWPF開発者ではありません。私はそれをWinFormsで動作させるように言われました。それは私が知っていることです。私は数時間でWinFormインターフェースをクランクアウトしました、そしてそれはWPFバージョンと同じくらいよく見えます...そして私はそれが何をしているのか知っています。WPFには、まだ学習していないブードゥー教が含まれます。

WPFプロジェクトで使用されているものの中には、それらが何をしているのかを把握する必要があるものがあり、すべてを完全に再設計する時間がありません。

ビジネスロジックレイヤーは、ObservableCollectionをWPFインターフェイスに返します。

WPFインターフェイスは、を取得し、そのパラメーターを使用しObservableCollectionてに格納します。CollectionViewSourceSource

OK、私はすぐにDataGridViewコントロールを考えて、DataSourceそこからのパラメータを使用しています。

私は順調ですか?

のポイントは何でしたIEditableCollectionViewか?必要ですか?そうでない場合は、それへのすべての参照を削除する必要がありますか?