get复选框绑定值

本文关键字:绑定 复选框 get | 更新日期: 2023-09-27 18:02:17

我有一个用户可以随意打开和关闭的弹出窗口。在窗口上有4个复选框,这些复选框带有被绑定的选中值。这个想法是,如果用户取消选中一个框,然后关闭窗口,它仍然是未选中的,下次打开它。当窗口打开时,如果有任何未选中的复选框,我需要做一些工作。我的问题是,当在WindowLoadedEvent的代码背后,我试图得到复选框的值,看看我是否需要做一些工作。每次窗口加载时,每个复选框的所有isChecked值都为false,即使当窗口显示它们都被选中时也是如此。

我不知道如何得到我正在寻找的值,我正在使用。net 4.0;

      <StackPanel x:Name="panelVisibilities">
                                <CheckBox x:Name="crossCorrelationViewCheck"                                 
                                          IsChecked="{Binding Path=Processor.CrossCorrelation.IsCrossCorrelationVisible}"
                                          Click="GraphVisibilityClickEvent"
                                          HorizontalAlignment="Left"/>
    ...etc

private void WindowLoadedEvent(object sender, RoutedEventArgs e)
        {
    IEnumerable<CheckBox> elements = this.panelVisibilities.Children.OfType<CheckBox>().ToList();            
                foreach (CheckBox uiElement in elements)
                {
                    bool isChecked = uiElement.DataContext;
                    if (isChecked == false)
                    {
                        //do work
                    }
                }
    }

编辑:更好的解释是,我有一个复选框。IsChecked绑定到一个模型,但是我想在窗口显示时从后面的xaml代码检查它的状态。

任何帮助都会很感激。

提前感谢。

get复选框绑定值

我认为你的代码可能有两个问题。

第一:bool isChecked = uiElement.DataContext;真的有效吗?uiElement为复选框,uiElement.DataContextnull。您可以使用uiElement.IsChecked.Value来获取该值。

Second:必须在WindowLoadedEvent发生之前设置Processor.CrossCorrelation.IsCrossCorrelationVisible的属性。你可以检查内部代码