暴露Togglebutton缺血性质

时间:2017-08-31 21:52:05

标签: c# wpf

我有2个用户控件,UC1& UC2: UC1:有3个togglebuttons,Button1,Button2,Button3 UC2:拥有UI元素的画布。 etc:ellipse1

我想在Button1.ischecked == true

时隐藏ellipse1

我公开了togglebutton的检查状态,但我一直读错。

UC1:

public ButtonLayout()
        {
            InitializeComponent();

        }

        public bool IsToggleChecked
        {
            get { return (bool)Button1.IsChecked; }

        } 

UC2:

ButtonLayout buttons = new ButtonLayout();
            if (buttons.IsToggleChecked == true)
            {
                elip1.Visibility = Visibility.Hidden;
            }

请让我知道我哪里出错了

1 个答案:

答案 0 :(得分:0)

您需要为Checked公开UnCheckedToggleButtons个事件,并从UC2订阅这些事件。事件处理程序可以隐藏/显示椭圆。

注意:您可以将ToggleButton中的两个事件聚合到您从UC2处理的一个ToggleStateChanged事件中。

    public event Action<bool> ToggleStateChanged;

    public ButtonLayout()
    {
        InitializeComponent();
        ToggleButton1.Checked += (sender, e) => ToggleStateChanged?.Invoke(true);
        ToggleButton1.UnChecked += (sender, e) => ToggleStateChanged?.Invoke(false);
    }

和UC2:

    ButtonLayout buttons = new ButtonLayout();
    buttons.ToggleStateChanged += SetVisibility;

    private void SetVisibility(bool isChecked)
    {
         elip1.Visibility = isChecked? Visibility.Hidden : Visibility.Visisble;
    }