gpt4 book ai didi

c# - 将 WPF xaml 绑定(bind)到 ViewModel 而不构造它

转载 作者:太空宇宙 更新时间:2023-11-03 21:05:59 25 4
gpt4 key购买 nike

我的 WPF 应用不使用 app.xaml。我正在使用 MVVM,并分别构建 View 和 View 模型。然后我将 ViewModel 传递给 View 构造函数并在那里设置数据上下文。

我想让 Visual Studio 能够理解 View 模型的属性以进行上下文单击等,但不希望它在设置 View 时构建自己的 DataContext。

当我这样做时,它会强制我为 MainViewModel 使用默认构造函数,然后在我构造 View 时调用该 VM 构造函数。

<Window x:Class="Kraken.CopFeed.Windows.MainFeedView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:Windows="clr-namespace:MyProgram.MainApp.WpfWindows"
mc:Ignorable="d"
Title="Main App" Height="321.557" Width="652.922">

<Window.DataContext>
<Windows:MainViewModel />
</Window.DataContext>

我如何才能保留我现有的分别构建 V 和 VM 的实现,但让 Visual STudio 中的 XAML 编辑器知道我的 ViewModel 将(最终)设置为数据上下文?

最佳答案

我认为您应该能够使用 d:DesignInstance 来做到这一点,如 this question .

<Window
...etc...
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"

d:DataContext="{d:DesignInstance Type=MyViewModelNamespace:MyViewModel}"
>

关于c# - 将 WPF xaml 绑定(bind)到 ViewModel 而不构造它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41108343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com