我在表单默认构造函数中有以下代码,我通过将两个参数传递给View Model来设置DataContext。我还默认将一个属性设置为true,它设置一个复选框以检查表单加载。
android:orientation="vertical"
问题是表单启动时两个参数为null,因此我收到以下错误:"应用程序错误:值不能为空。参数名称:path"。
我可以在为变量分配数据之后移动代码然后它会工作,但SortVariables bool只会被分配,而不是在启动时分配。
编辑:我不能简单地将复选框设置为在XAML中检查,因为它已被绑定:
DataCompareVM dcvm = new DataCompareVM(dataset1FullPath, dataset2FullPath);
dcvm.SortVariables = true;
DataContext = dcvm;
如何解决此问题?
答案 0 :(得分:0)
我希望在加载表单时显示复选框,而不是在用户将数据分配给这些变量之后。如果他们在分配数据后看到复选框勾选,它会让他们感到困惑......
那么,您当然需要将SortVariables
移到另一个类并将其作为临时类DataContext
使用:
var temp = new { SortVariables = true };
DataContext = temp;
您无法绑定到不存在的对象的属性...
答案 1 :(得分:0)
将回退值设置为true,因此当datacontext为null时,将检查
<CheckBox IsChecked="{Binding Value, FallbackValue=True}">Yourcheckbox</CheckBox>