Кнопка переключения внутри всплывающей подсказки - PullRequest
0 голосов
/ 02 мая 2018

Я сделал 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.

Почему это происходит?

...