在事件之后的默认构造函数AND中设置DataContext

时间:2017-08-22 13:34:12

标签: c# wpf

我在表单默认构造函数中有以下代码,我通过将两个参数传递给View Model来设置DataContext。我还默认将一个属性设置为true,它设置一个复选框以检查表单加载。

android:orientation="vertical"

问题是表单启动时两个参数为null,因此我收到以下错误:"应用程序错误:值不能为空。参数名称:path"。

我可以在为变量分配数据之后移动代码然后它会工作,但SortVariables bool只会被分配,而不是在启动时分配。

编辑:我不能简单地将复选框设置为在XAML中检查,因为它已被绑定:

DataCompareVM dcvm = new DataCompareVM(dataset1FullPath, dataset2FullPath);
dcvm.SortVariables = true;
DataContext = dcvm;

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

  

我希望在加载表单时显示复选框,而不是在用户将数据分配给这些变量之后。如果他们在分配数据后看到复选框勾选,它会让他们感到困惑......

那么,您当然需要将SortVariables移到另一个类并将其作为临时类DataContext使用:

var temp = new { SortVariables = true };
DataContext = temp;

您无法绑定到不存在的对象的属性...

答案 1 :(得分:0)

将回退值设置为true,因此当datacontext为null时,将检查

<CheckBox IsChecked="{Binding Value, FallbackValue=True}">Yourcheckbox</CheckBox>