gpt4 book ai didi

wpf - 复合 WPF : Data Template vs. 查看模型注入(inject)

转载 作者:行者123 更新时间:2023-12-04 19:05:01 24 4
gpt4 key购买 nike

这是一个简单的问题:您使用什么将 View 链接到 View 模型?

基本上有两种常见的方法来实现这一点,数据模板和 View 模型注入(inject)(下面的示例)。

我想知道的是为什么你更喜欢一种方法而不是另一种方法,在这种情况下你会使用它们。精确到您使用的 MVVM 框架。

数据模板方式或“查看模型优先”方式(Resources.xaml):

<DataTemplate DataType="{x:Type my:PersonViewModel}">
<my:PersonView/>
</DataTemplate>

View 模型注入(inject)方式或“ View 优先”方式(PersonView.xaml.cs):
[Import]
public PersonViewModel ViewModel
{
set
{
this.DataContext = value;
}
}

最佳答案

我更喜欢使用 DataTemplates

  • 它允许我基于属性
  • 为同一个 ViewModel 设置多个 View
  • 我的 ViewModel 是我的应用程序,而 View 只不过是一个漂亮的层,它使我的 ViewModel 的用户友好。如果我使用 ViewModel 注入(inject),那么 Views 将成为我的应用程序,开发团队突然不得不担心 UI 方面的事情
  • 我的 ViewModel 由其他 ViewModel 管理。例如,一个 ViewModel 可能包含一组显示在 TabControl 中的其他 ViewModel。添加或关闭选项卡在父 ViewModel 中完成。使用 View 控制应用程序状态并不容易完成这类事情。
  • 我可以根据我的需要使用参数化构造函数来初始化不同的 ViewModel,而不必使用通用 Import 的

  • 这只是几个原因......我确定还有其他原因,但他们现在没有想到

    关于wpf - 复合 WPF : Data Template vs. 查看模型注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6679697/

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