c# - 从 XAML 将 Window 对象绑定(bind)到 viewmodel 属性

标签 c# wpf mvvm binding

我有这样的 View 模型:

public class ViewModel
{
    public IView View { get; set; }
}

以及实现 IView 的 Window .

我需要将这个确切的窗口绑定(bind)到 view属性不变ViewModel类(class)。

这是否可能仅与该窗口的 XAML 相关?

我可以这样做:https://stackoverflow.com/a/47266732/3206223

但必须改变ViewModel在这种情况下这是不可取的。

最佳答案

您需要在 XAML 中实例化 ViewModel 并将其设置为 DataContext:

<Window x:Class="MyApp.AppWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:MyApp.ViewModels">
      <Window.DataContext>
           <local:ViewModel/>
      </Window.DataContext>
</Window>

编辑:

改变
window.DataContext = new ViewModel(properties);
window.ShowDialog();


var vm = new ViewModel(properties);
vm.View = window;
window.ShowDialog();

关于c# - 从 XAML 将 Window 对象绑定(bind)到 viewmodel 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51948016/

相关文章:

c# - 使用字符串路径的 SetBinding 仅在 .NET 4.0 中触发 SetBinding 上的更改事件

c# - 从第一个用户控件 wpf MVVM 打开第二个用户控件

c# - 在 Xamarin UITableViewCell 中向 UILabel 添加中心约束不会使标签居中

c# - 在 WCF 中获取调用者的主机名

c# - 编辑时获取文本框内容

c# - 从 DatePicker 触发命令或触发器

c# - MVVM模型——模型之间的关联

c# - 为任务/意图提供单声道跨平台支持

c# - 在 .Net 中收集大量数据的最简洁方法是什么

javascript - 调用 MapSignalR 导致协议(protocol)错误