RowDetails (テキストブロック) がDetails
グリッドの ItemSource 要素の文字列プロパティにバインドされる WPF Datagrid を設計しようとしています。
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<TextBlock Text="{Binding Details}" .....
</DataTemplate>
</DataGrid.RowDetailsTemplate>
秘訣は、バインドされたコレクション内の要素にプロパティがない可能性があるDetails
ことです。その場合、RowDetails は空にする必要があります。例外をスローせずに、実行時に存在しない可能性のあるプロパティに WPF をバインドする方法はありますか? (明確にするために、バインドされたコレクション内のアイテムはすべてDetails
プロパティを持つか、すべて持たないかのいずれかです。複数のオブジェクト タイプを保持するコレクションについて話しているのではありません。)
1 つの答えは、このグリッドのユーザーに、常に Details プロパティ (IDetails インターフェイスなど) を持つオブジェクトを提供するように強制することだと思いますが、これを行う必要がないのはいいことだと思います - グリッドを表示できるオブジェクトは非常に柔軟です。