我正在构建一个Windows 8.1应用程序(WinRT/Windows,没有Silverlight),我使用的是杯标MicroVersion2.0.1。
根据我的观察,在我看来,ToggleSwitch控件没有Can约定。在视图中,我有一个名为"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}" />这是一个错误或缺少的功能,在卡利伯恩微,或我做了什么错事?
更新
我修改了ViewModel,使CanSwitch总是返回false。这对视图没有影响。ToggleSwitch仍处于启用状态。
public bool Switch { get; set; }
public bool CanSwitch
{
get
{
return false;
}
}我还在CanSwitch的getter中设置了一个断点。这个断点从未被击中。看起来CanSwitch被卡利伯恩微忽略了。
发布于 2015-05-19 10:09:24
private bool switch;
public bool CanSwitch
{
get { return switch; }
set
{
switch= value;
NotifyOfPropertyChange(() => switch);
}
}https://stackoverflow.com/questions/29284261
复制相似问题