gpt4 book ai didi

wpf - 实例化 ViewModel(需要简单的帮助)

转载 作者:行者123 更新时间:2023-12-03 10:19:44 25 4
gpt4 key购买 nike

MVVM 的新手,它点击到位,但我似乎有一个知识/概念差距......

我的 MainWindow 显示项目列表:

<Window.DataContext>
<vm:MainWindowViewModel />
</Window.DataContext>

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="100" />
</Grid.RowDefinitions>

<vw:HeaderView Grid.Row="0" />

<vw:RegistersView Grid.Row="1" />

<vw:LogView Grid.Row="2" />
</Grid>

MainWindowViewModel 创建主数据存储库。

RegistersView 有一个对象 ListView (除其他外)并负责编辑值。我可以通过公开 ObservableCollection<> 并将上面的行更改为,将数据放入 RegistersView 中的 ListView
<vw:RegistersView DataContext="{Binding PropertyNameOfCollectionForListView}" Grid.Row="1" />

为 RegistersView 创建一个 ViewModel 似乎非常 MVVM(更不用说明显)......但我缺乏如何以非常基本的方式连接它的洞察力。我知道我可以使用 Unity、Prism 和所有其他工具使用 IOC/DI,但是……我必须这样做吗?我真正想要的只是能够公开 Registers-View 特定属性以与模型交互并定义要绑定(bind)的命令等。

我觉得我想说
<vw:RegistersView viewmodel="RegistersViewModel(PropertyNameOfCollectionForListView)" />

有人可以指出我正确的方向吗 - 我已经阅读了阅读和阅读,但我错过了它。

感谢您的耐心等待;->

最佳答案

您的 MainWindowViewModel可以暴露 RegistersViewModel 的属性键入,然后您可以将其绑定(bind)到 RegisterView.DataContext在 XAML 中如下所示:

<vw:RegistersView Grid.Row="1" 
DataContext="{Binding RegistersViewModelPropertyName}" />

显然 RegistersViewModelPropertyName应该引用已经实例化的 RegistersViewModel .由您决定如何操作,无论是在 MainViewModel施工阶段或实现 RegistersViewModelPropertyName getter 一样懒惰。

关于wpf - 实例化 ViewModel(需要简单的帮助),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9570337/

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