ユーザーがカスタム アイコンを選択できるダイアログがあります。読み込まれたアイコンは、ユーザーが選択するコンボボックスに表示されます。コンボボックスの XAML コードは次のとおりです。
<ComboBox
Style="{DynamicResource IconComboBox}"
ItemTemplate="{StaticResource IconTemplate}"
ItemsSource="{Binding Icons,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UserControl}}}"
SelectedItem="{Binding Icon}"
/>
- Iconsは、BitmapFrameの配列を返すプロパティです。
- アイコンは、現在選択されているのプロパティです。
現在機能していないのは、コード ビハインドを使用して Icon プロパティを設定すると (たとえば、前回ダイアログが表示されたときにユーザーが選択したアイコンを表示する場合)、コンボボックスの選択が空白になることです。OnPropertyChanged を呼び出す前にプロパティを null に設定したかのように。
私の現在の理論では、WPF は BitmapFrames を比較できないため、リストをたどると、そこにあるアイコンのいずれかが「等しい」と判断できず、null と見なされます。
要するに; コード ビハインドを使用して、現在選択されているアイテム (BitmapFrame) をコンボ ボックスに設定する最良の方法は何ですか?