繁体   English   中英

公开Togglebutton ischecked属性

[英]expose Togglebutton ischecked property

我有2个用户控件,UC1和UC2:UC1:具有3个切换按钮,Button1,Button2,Button3 UC2:具有带UI元素的画布。 等:ellipse1

我想在Button1.ischecked == true时隐藏ellipse1

我暴露了切换按钮的检查状态,但是我一直都读为false。

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;
            }

请让我知道我要去哪里了

您需要公开ToggleButtonsCheckedUnChecked事件,并从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;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM