gpt4 book ai didi

.net - 如何在 WPF MVVM 中使用用户控件

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

您好我正在构建一个 wpf 应用程序,其中一个屏幕将包含用于执行各种应用程序的不同用户控件。

我想知道在 MVVM 中执行此操作的正确过程?每个用户控件应该有自己的 View 模型,还是应该绑定(bind)到主视图模型属性?

请提出一个好的方法。谢谢,

最佳答案

当我使用 UserControl 时,我通过 DependencyProperties 传递数据。我的 UserControls 没有 ViewModels。 UserControls 仅以一种非常特殊的方式处理传递的数据。

但是,如果我有包含一些 subview 的 View ,我希望每个 subview 都有一个自己的模型。这些模型我将通过 MainView 的 ViewModel 的一个属性进行绑定(bind)。

一些例子:

UserControl1,后面的代码:

public partial class UserControl1 : UserControl
{
public MyClass MyProperty
{
get { return (MyClass)GetValue(MyPropertyProperty); }
set { SetValue(MyPropertyProperty, value); }
}

public static readonly DependencyProperty MyPropertyProperty =
DependencyProperty.Register("MyProperty", typeof(MyClass), typeof(UserControl1), new UIPropertyMetadata(null));


public UserControl1()
{
InitializeComponent();
}
}

public class MyClass
{
public int MyProperty { get; set; }
}

以及 View 中的用法,XAML:
<Window x:Class="Sandbox.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Sandbox="clr-namespace:Sandbox">
<Grid>
<Sandbox:UserControl1 MyProperty="{Binding MyOtherPropertyOfTypeMyClassInMyViewModel, Mode=TwoWay}" />
</Grid>

希望这可以帮助

关于.net - 如何在 WPF MVVM 中使用用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6841924/

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