打开一个窗口,但没有设置复选框

本文关键字:复选框 设置 窗口 一个 | 更新日期: 2023-09-27 18:12:19

我有一个问题与我的复选框。我有一个主窗口(),从这里我打开我的第二个窗口设置一些搜索属性的用户。(他们想在哪些领域搜索……)如姓名、名及其他)在用户确认他的选择后,窗口被关闭,值被保存在app. properties中。在下次启动应用程序时,之前会话的值仍然是它们应该的样子,所以这部分工作。

现在的问题是:如果我现在打开窗口,所有的复选框都没有像他们应该的那样设置?!我把它们像这样绑定到我的ViewModel上:

 <CheckBox x:Name="cVersichertenstatus" Content=...  **IsChecked="{Binding Versichertenstatuschecked}"** .../>

我的绑定锁的代码如下:

private bool versichertenstatusischecked;
        public bool Versichertenstatuschecked
        {
            get
            {
                return versichertenstatusischecked;
            }
            set
            {
                if (Versichertenstatuschecked != value)
                {
                    versichertenstatusischecked = value;
                    //this.OnPropertyChanged("Versichertenstatuschecked");
                }
            }
        }

启动后,我用app.propertys的值设置所有的绑定属性。但这改变不了什么。checkbox的值总是false:-(

)

我想这是因为我不使用OnPropertyChanged,但如果我尝试我得到这个错误:

object reference not set to an instance of the object

我不明白,我有很多绑定,都工作得很好,只有复选框的事情不。

有人能告诉我我该怎么做才能解决这个错误吗?

编辑:

Set the Datacontext :
  public MainWindow()
        {
            InitializeComponent();
            SetupBindings();
            var l = new app_config_load();
            l.load();
        }
        private void SetupBindings()
        {
            pViewModelList viewModel = new pViewModelList();
            plistview.DataContext = viewModel;
        }

和load()类:

  public void load()
            {
                Properties.Settings get = new Properties.Settings();
                pViewModelList a = new pViewModelList();
                a.Nachnamechecked = get.cnachname_app;
                a.Versichertenstatuschecked = get.cversichertenstatus_app;
                a.Geburtsdatumchecked = get.cgeburtsdatum_app;
                a.Versicherungsnrchecked = get.cversichertennummer_app;
                a.Vornamechecked = get.cvorname_app;
                get.Save();
            }

我是否必须首先以某种方式初始化属性?你以为这是自动发生的吗?

打开一个窗口,但没有设置复选框

是否设置了DataContext?

public MyWindow(MyClass myClass){
InitializeComponent();
this.DataContext = myClass;
} 

之前InitializeComponent ();所有的GUI元素将为空!

如何从MainWindow获取元素:

public MyClass GetData()
{
  MyClass data = this.DataContext as MyClass;
  return data;
}

和尝试:

IsChecked="{Binding Path=Versichertenstatuschecked}"

我想我知道问题是什么了。您错过了绑定的Mode

IsChecked="{Binding Versichertenstatuschecked, Mode=TwoWay}"

使用它将触发viewModel中的更改,以显示在视图中。

我自己解决了这个问题。我只需要等到窗口加载之前,我使用我的类来设置绑定属性。我使用了"loaded"事件来调用Class和jeah,不再有任何对象引用错误:)

这样的事情真令人沮丧。

自保"