将标签内容绑定到嵌套类中的值,而不是Datacontext中的值

时间:2013-02-07 14:48:55

标签: c# wpf mvvm binding mvvm-light

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

我的嵌套类:

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();
    }
}

我的BankModel:

    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}"/>

首先,我无法看到&#34;测试&#34;在我的标签中,如果我执行,我改变了这个值,并且我的标签总是空的,我是如何用正确的方法做到的

1 个答案:

答案 0 :(得分:3)

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

<Label Content="{Binding Source={x:Static Controller:MainController.Instance}, Path=CurrentBank.Name}" />