次の問題
があります。いくつかの文字列プロパティを持つクラスがあり
、そのようなクラス エンティティのコレクションがあります。
そのコレクションは、一部のウィンドウの左側にツリーで表示され、右側に詳細が表示されます。選択したノードの文字列プロパティを詳細にコンボボックスにバインドしています。
最初のコンボボックスには常に同じ ItemsSource がありますが、2 番目の ItemsSource は最初のコンボの SelectedItem に依存します...
<ComboBox
Grid.Column="1"
SelectedIndex="0"
x:Name="cbClass"
Style="{DynamicResource ComboBoxValidationError}"
SelectedValue="{Binding Path=Description.Node.ClassName, ElementName=userControl, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Source={StaticResource classesProvider}}"
Width="Auto"
Height="Auto"
DisplayMemberPath="Description"
SelectedValuePath="FQN" />
<ComboBox
Grid.Column="1"
SelectedIndex="0"
Grid.Row="1"
x:Name="cbMethod"
SelectedValue="{Binding Path=Description.Node.MethodName, ElementName=userControl, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged,diag:PresentationTraceSources.TraceLevel=High}"
ItemsSource="{Binding Path=SelectedItem.Methods, ElementName=cbClass, Mode=Default,diag:PresentationTraceSources.TraceLevel=High}"
Style="{DynamicResource ComboBoxValidationError}"
Width="Auto"
Height="Auto"
SelectedValuePath="Name"
DisplayMemberPath="Description" />
ツリーに新しいノードを作成すると、両方の文字列プロパティが null 参照になります。そして、最初のコンボが NEW ノードの SelectedItem を変更すると、2 番目の ComboBox は、ツリーに新しいノードを作成する前に選択された OLD ノードの文字列値に null をバインドします... この場合、どうすればよいのでしょうか?