【问题标题】:problem in xbap mvvm implementationxbap mvvm 实现中的问题
【发布时间】:2010-05-28 13:57:31
【问题描述】:

我正在尝试为 xbap 应用程序实现 mvvm 设计模式但无法执行简单的文本绑定。

以下是我的DemoViewModel.cs的定义,

类 DemoViewModel : INotifyPropertyChanged { 字符串名称;

    public event PropertyChangedEventHandler PropertyChanged;

    public string Name
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
            OnPropertyChanged("Name");
        }
    }

    public DemoViewModel()
    {
        Name = "test";
    }

    protected virtual void OnPropertyChanged(string propertyName)
    {
        if (this.PropertyChanged != null)
        {
            this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }        
}

我正在使用视图后面的代码将视图绑定到视图模型,

公共 DemoView() { 初始化组件(); DataContext = new DemoViewModel(); }

以下是视图中文本框的绑定定义,

【问题讨论】:

  • xaml 绑定代码, 根据我的说法,“测试”应该在执行时显示在文本框中,这并没有发生。如有错误请指正
  • 我已经测试了你的代码,它运行良好。我不确定发生了什么。当您调试应用程序时,检查您的输出窗口,其中显示数据绑定错误。查看窗口中的任何消息是否有帮助。
  • 你现在正在发生的事情正如预期的那样不确定在我第一次执行期间文本没有显示......无论如何非常感谢

标签: data-binding mvvm xbap


【解决方案1】:

看来您已正确连接所有内容。在执行过程中,看看你的“输出”窗口,看看它是否给你任何关于绑定的警告。另外,尝试将您的 xaml 简化为以下内容,看看是否有帮助:

<TextBox Text="{Binding Name, Mode=TwoWay}"/>

【讨论】:

  • 嘿,很抱歉延迟回复......现在一切正常......但我所做的唯一改变是将 DemoViewModel 类设为公共......但相同的绑定正在工作与 DemoViewModel 类作为私有的 wpf 应用程序一样好......为什么视图模型类应该为 xbap 应用程序公开,而在 WPF 的情况下不需要?
【解决方案2】:

根据您的评论,对于 JSPrang 的回答,我知道出了什么问题 =)

XBAP 缺少使用反射的权限,因此只能绑定到公共类,除非完全信任运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    相关资源
    最近更新 更多