首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ToggleSwitch不遵守Can协议。

ToggleSwitch不遵守Can协议。
EN

Stack Overflow用户
提问于 2015-03-26 16:47:27
回答 1查看 153关注 0票数 0

我正在构建一个Windows 8.1应用程序(WinRT/Windows,没有Silverlight),我使用的是杯标MicroVersion2.0.1。

根据我的观察,在我看来,ToggleSwitch控件没有Can约定。在视图中,我有一个名为"Switch“的ToggleSwitch。在ViewModel中,我有两个属性:"Switch“和"CanSwitch",它们都是bool类型的。

考虑到:

代码语言:javascript
复制
<ToggleSwitch x:Name="Switch" />

在ViewModel中:

代码语言:javascript
复制
public bool CanSwitch
{
    get
    {
        return ...;
    }
}

public bool Switch { get; set; }

我希望根据属性“ToggleSwitch”启用或禁用CanSwitch。但这行不通。只有在建立了明确的约束之后,我才得到了所需要的行为。

代码语言:javascript
复制
<ToggleSwitch x:Name="Switch"
              IsEnabled="{Binding CanSwitch}" />

这是一个错误或缺少的功能,在卡利伯恩微,或我做了什么错事?

更新

我修改了ViewModel,使CanSwitch总是返回false。这对视图没有影响。ToggleSwitch仍处于启用状态。

代码语言:javascript
复制
public bool Switch { get; set; }

public bool CanSwitch
{
    get
    {
        return false;
    } 
}

我还在CanSwitch的getter中设置了一个断点。这个断点从未被击中。看起来CanSwitch被卡利伯恩微忽略了。

EN

回答 1

Stack Overflow用户

发布于 2015-05-19 10:09:24

代码语言:javascript
复制
private bool switch;

public bool CanSwitch
{
    get { return switch; }
    set 
    {
        switch= value;
        NotifyOfPropertyChange(() => switch);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29284261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档