Я сделал UserControl
, который содержит три переключателя, каждая из которых связана с различными элементами одного и того же ObservableCollection
. UserControl
позже используется внутри Popup
.
По какой-то причине, когда я переключаю один из них в другом экземпляре UserControl
в другом всплывающем окне, он также переключается.
Три ToggleButton
внутри UserControl
выглядят так:
<DockPanel DockPanel.Dock="Top" LastChildFill="False" Margin="0, 0, 0, 8">
<TextBlock DockPanel.Dock="left" Margin="0" Text="ROTATION" Foreground="{StaticResource BaseText}" VerticalAlignment="Center"/>
<ToggleButton DockPanel.Dock="Right" Height="25" Width="25" Tag="3" IsChecked="{Binding RotationAxis[2], ElementName=RotationPanel, Converter={StaticResource BoolToString}, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Click="ToggleButton_Click" Content="Z"/>
<ToggleButton IsChecked="{Binding RotationAxis[1], ElementName=RotationPanel, Converter={StaticResource BoolToString}, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
<ToggleButton IsChecked="{Binding RotationAxis[0], ElementName=RotationPanel, Converter={StaticResource BoolToString}, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
</DockPanel>
Они связаны с этим DependencyProperty
:
public static readonly DependencyProperty RotationAxisProperty =
DependencyProperty.Register("RotationAxis", typeof(ObservableCollection<string>), typeof(RotationSelector), new PropertyMetadata(new ObservableCollection<string> { "True", "True", "True" }));
[Bindable(true)]
public ObservableCollection<string> RotationAxis
{
get { return (ObservableCollection<string>)this.GetValue(RotationAxisProperty); }
set { this.SetValue(RotationAxisProperty, value); }
}
UserControl
затем дважды используется в моем приложении:
<Popup x:Name="SpritePopupRotation">
<CMiX:RotationSelector x:Name="SpriteSelectedRotation" RotationAxis="{Binding Datacontext.SpriteRotationAxis, ElementName=Ch_Parameters, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" AxisChanged="RotationSelector_AxisChanged"/>
</Popup>
<Popup x:Name="MaskPopupRotation">
<CMiX:RotationSelector x:Name="MaskSelectedRotation" RotationAxis="{Binding Datacontext.MaskRotationAxis, ElementName=Ch_Parameters, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" AxisChanged="RotationSelector_AxisChanged"/>
</Popup>
Теперь, когда я запускаю свое приложение, три ToggleButton
с одного UserControl
выглядят так, как будто они связаны с остальными тремя другими экземплярами UserControl
.
Почему это происходит?