1

我的视图 (InformationView) 绑定到 InformationViewModel 并且我使用嵌套类来维护当前的银行

我的嵌套类:

public class MainController : NotificationObject
{
    public MainController()
    {
        Initialize();
    }

    private void Initialize()
    {
        // TODO implement 
    }


    public static MainController Instance
    {
        get { return Nested.instance; }
    }

    private BankModel _currentBank;

    public BankModel CurrentBank
    {
        get { return _currentBank; }
        set
        {
            if (_currentBank== value)
            {
                return;
            }

            _currentBank= value;
            RaisePropertyChanged(() => CurrentBank);
        }
    }

    private class Nested
    {
        static Nested()
        {
        }

        internal static readonly MainController instance = new MainController();
    }
}

我的银行模型:

    private string _name ="test";

    public string Name
    {
        get
        {
            return _name;
        }

        set
        {
            if (_name == value)
            {
                return;
            }

            _name= value;
            RaisePropertyChanged(()=>Name);
        }
    }

我的 XAML

xmlns:Controller="clr-namespace:MyProject.Controller" 
/****/
<Label Content="{Binding Controller:MainController.CurrentBank.Name}"/>

首先我在我的标签中看不到“测试”,如果我执行我更改这个值并且我的标签总是为空,我如何用正确的方法做到这一点

4

1 回答 1

3

您需要在绑定声明中使用“路径”和“源”的组合。您还需要提醒绑定引擎您正在访问静态成员。

<Label Content="{Binding Source={x:Static Controller:MainController.Instance}, Path=CurrentBank.Name}" />
于 2013-02-07T15:03:21.967 回答