当控件不是可视化树的一部分时,如何绑定 MVVM

本文关键字:分时 一部 何绑定 MVVM 绑定 控件 可视化 | 更新日期: 2023-09-27 18:31:43

我正在使用XCeedExtended Tool套件。我发现我不能特别容易(或根本)绑定到他们的控件。我不得不使用后面的代码来引用控件x:Name

我现在使用的是MVVM模式,因此它不再是一种选择。

我的阅读表明错误是由于他们的控制不是可视化树的一部分,尽管我不知道如何测试这一点。

问题是,使用他们的 ToggleSwitch 控件,我想将其绑定到我的 ViewModel。视图模型实现了 INPC,我的组合框、文本框等的绑定都按预期绑定。

<xctk:ToggleSwitch HorizontalAlignment="Left" IsChecked="{Binding IsContinue}" />

和我的视图模型

private bool _IsContinue;
public bool IsContinue
{
    get { return this._IsContinue; }
    set
    {
        if (this._IsContinue== value)
            return;
        this._IsContinue= value;
        OnPropertyChanged("IsContinue");
    }
}

由于此绑定不起作用(这意味着无论我是否"检查"切换开关,结果始终是错误的),因此我不知道如何使绑定正常工作。

当控件不是可视化树的一部分时,如何绑定 MVVM

您已经设置了一个"单向绑定": 控件将从视图模型中获取其值,但不能将其设置回视图模型。

像这样设置绑定

IsChecked="{Binding IsContinue, Mode = TwoWay}"

它应该有效。