ListView に 2 種類の項目を表示しています。
abstract class Item
{
string ID { get; }
}
class ItemTypeA : Item
{
string Value { get; set; }
}
class ItemTypeB : Item
{
string ValueOne { get; set; }
string ValueTwo { get; set; }
}
(もちろん、それ以上のことはほとんどありません。さまざまなインターフェイスを使用しますが、例として、それを省略し、それらの型の「最終的な」構造のみを示しました)
したがって、基本的に ListView には常に ID 列があり、他の列は項目の種類によって異なります。
of である種の動的な列を使用することを考えていました。ここでGridView
はListView.View
、基になるビュー モデルがどの列 (または特定のアイテム タイプの属性) を表示するかを決定します。
編集についても同様です。編集領域には、ItemTypeA用に 1 つ、 ItemTypeBTextBox
用に 2 つだけ存在する必要があります。
基本的に、私の質問は、これを解決する方法ですが、項目タイプごとに完全に個別のビュー (ListView と編集領域を含む) を作成することを避けようとしています。
また、アイテムの値には大量のテキスト (複数行のテキストであっても) が含まれる場合があり、ユーザーが編集するのが難しいため、ListView でアイテムを直接編集することは避けたいと考えています。
(私は Caliburn.Micro を使用していますが、それは問題とはあまり関係ありません)。