我有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;
}
请让我知道我哪里出错了
答案 0 :(得分:0)
您需要为Checked
公开UnChecked
和ToggleButtons
个事件,并从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;
}