C# 复选框事件触发器

C# 复选框事件触发器,c#,wpf,C#,Wpf,我的应用程序上有两个屏幕,每个屏幕都有相同的map组件。地图的图层存储为两个列表对象,其中图层的简单ID表示每个屏幕上的可见图层 <CheckBox VerticalAlignment="Center" Margin="3" IsChecked="{Binding Visible}" ToolT

我的应用程序上有两个屏幕,每个屏幕都有相同的map组件。地图的图层存储为两个列表对象,其中图层的简单ID表示每个屏幕上的可见图层

                <CheckBox 
                    VerticalAlignment="Center" 
                    Margin="3" 
                    IsChecked="{Binding Visible}"
                    ToolTip="Layer visibility"
                    Checked="Visible_Changed"
                    Unchecked="Visible_Changed"
                    />

当用户在两个屏幕之间导航时,层的visible属性将从代码隐藏中触发,复选框将反映相同的内容。层的行为也应该如此

问题是,现在用户可以在任何屏幕上选择一个层来更改层的可见属性,在这种情况下,我必须更新该屏幕的层列表


当代码更改visible属性时,是否有任何方法可以使复选框不触发事件。我只希望在用户选中复选框时触发事件当您无法阻止触发事件时,您可以通过检查
bool
标志将代码封装在处理程序中,手动调用代码时将该标志设置为
true

<CheckBox Checked="CheckBoxChanged" Unchecked="CheckBoxChanged" />
其他地方

isNotLocalChange = true;
// Do your programmatic change here
isNotLocalChange = false;

虽然无法阻止触发事件,但可以通过检查
bool
标志将代码封装在处理程序中,手动调用代码时将该标志设置为
true

<CheckBox Checked="CheckBoxChanged" Unchecked="CheckBoxChanged" />
其他地方

isNotLocalChange = true;
// Do your programmatic change here
isNotLocalChange = false;

虽然无法阻止触发事件,但可以通过检查
bool
标志将代码封装在处理程序中,手动调用代码时将该标志设置为
true

<CheckBox Checked="CheckBoxChanged" Unchecked="CheckBoxChanged" />
其他地方

isNotLocalChange = true;
// Do your programmatic change here
isNotLocalChange = false;

虽然无法阻止触发事件,但可以通过检查
bool
标志将代码封装在处理程序中,手动调用代码时将该标志设置为
true

<CheckBox Checked="CheckBoxChanged" Unchecked="CheckBoxChanged" />
其他地方

isNotLocalChange = true;
// Do your programmatic change here
isNotLocalChange = false;

只需在更改的代码周围设置一个屏障,如在事件中检查它是否为true和exit时,只需在更改的代码周围设置一个屏障即可通过添加条件阻止已检查事件的功能,像
codeChangedMe=true
在事件中检查它是否为true和exit您可以通过添加条件来阻止已检查事件的功能只需在已更改的代码周围设置障碍,像
codeChangedMe=true
在事件中检查它是否为true和exit您可以通过添加条件来阻止已检查事件的功能只需在已更改的代码周围设置障碍,与事件中的
codeChangedMe=true
类似,检查它是否为true和exit您可以通过添加条件来阻止已检查事件的功能