我正在构建一个Windows Phone 8.1应用程序(WinRT / Windows Store,没有Silverlight),我使用的是Caliburn Micro Version 2.0.1。
根据我的观察,在我看来,没有可以达成的惯例 ToggleSwitch控件。在视图中,我有一个名为“Switch”的ToggleSwitch。 在ViewModel中,我有两个属性:“Switch”和“CanSwitch”,两者都是bool类型。
在视图中:
<ToggleSwitch x:Name="Switch" />
在ViewModel中:
public bool CanSwitch
{
get
{
return ...;
}
}
public bool Switch { get; set; }
我希望根据属性启用或禁用ToggleSwitch “CanSwitch”。但这不起作用。只有在建立了明确的绑定后我才能得到 这种行为。
<ToggleSwitch x:Name="Switch"
IsEnabled="{Binding CanSwitch}" />
这是Caliburn Micro中的错误或缺失功能还是我做错了什么?
更新
我修改了ViewModel,CanSwitch总是返回false。这对View没有影响。 ToggleSwitch仍然启用。
public bool Switch { get; set; }
public bool CanSwitch
{
get
{
return false;
}
}
我还在CanSwitch的getter中设置了一个断点。这个断点从未被击中过。 Caliburn Micro似乎忽略了CanSwitch。
答案 0 :(得分:0)
private bool switch;
public bool CanSwitch
{
get { return switch; }
set
{
switch= value;
NotifyOfPropertyChange(() => switch);
}
}