現在、ICollectionView、myCollectionViewを使用してObservableCollectionにバインドしています。そのコレクションのコンテンツは、ComboBoxから選択されています。各コレクションアイテムmyCollectionItemには、子としてVisualBrush、myVisualBrushがあり、CurrentItemのブラシがプレビューパネルに表示されます。
コレクションアイテムは子オブジェクトmyItemChildでもあり、スライダーの生成に使用される独自のプロパティがいくつか含まれています。このスライダーは、プレビューパネルのプロパティを変更します。
これはすべて期待どおりに機能します。
コレクションビューのCurrentItemが変更されると、プレビューパネルは正しく更新されますが、スライダーには前のCurrentItemのmyItemChildが引き続き表示されます。
myItemChildへの変更は発生していませんが、この状況をどのように処理する必要がありますか?
その可能性が非常に高いので、私は明らかな何かを見逃したので、どんなポインタも高く評価しました。
よろしく
ロブ
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<!-- Combo Box for selection of item-->
<ComboBox Grid.Row="0" ItemsSource="{Binding myCollectionView, Mode=TwoWay}" IsSynchronizedWithCurrentItem="True">
<ComboBox.ItemTemplate>
<DataTemplate DataType="{x:Type vm:myCollectionItem}" >
<StackPanel>
<Rectangle Height="40" Width="40" Fill="{Binding myVisualBrush}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<!-- Panel to preview item-->
<ContentControl Grid.Row="1" Content="{Binding myCollectionView/}">
<ContentControl.ContentTemplate>
<DataTemplate DataType="{x:Type vm:myCollectionItem}" >
<Rectangle Margin="20" Fill="{Binding myVisualBrush}" />
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
<!-- Slider to edit item-->
<ContentControl Grid.Row="2" Content="{Binding myCollectionView/}">
<ContentControl.ContentTemplate>
<DataTemplate DataType="{x:Type vm:myCollectionItem}" >
<ContentControl Content="{Binding myItemChild}">
<ContentControl.ContentTemplate>
<DataTemplate DataType="{x:Type vm:myCollectionItemChild}" >
<StackPanel>
<Label Content="{Binding myValueLabel, Mode=OneWay}"/>
<Slider Value="{Binding myValue, Mode=TwoWay}" Maximum="{Binding myValueMax}" Minimum="{Binding myValueMin}"/>
</StackPanel>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
</Grid>