3

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

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

public class PersonsList : ObservableCollection<Person> { }

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

PersonsList<T> : ObservableCollection<T> where T : Person { }

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

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

4

1 に答える 1

1

に実装IEditableObjectしてみTて、問題が解決するかどうかを確認してください。Vincent Sibalは、これが必要だと言います。しかし、彼はまた必要であると主張しPersonsList<T>ます、しかしあなたはすでにこれを理解しました。うまくいけば、それでIEditableObject十分であり、非ジェネリッククラスを使用できるようになります。

于 2010-04-23T20:15:59.117 に答える