如果ViewModel有参数,可以通过以下方式实例化:

  1. 在XAML中定义ViewModel的参数,并使用Binding绑定到ViewModel的属性,然后在ViewModel的构造函数中获取参数值。

例如,在XAML中定义一个参数:

<Window x:Class="MyApp.MainWindow"
        xmlns:vm="clr-namespace:MyApp.ViewModels"
        DataContext="{Binding MainViewModel, Source={StaticResource Locator}}">
    <Window.Resources>
        <vm:MainViewModel x:Key="MainViewModel">
            <vm:MainViewModel.MyParameter>
                <system:String>Parameter Value</system:String>
            </vm:MainViewModel.MyParameter>
        </vm:MainViewModel>
    </Window.Resources>
    ...
</Window>

在ViewModel中定义对应的属性和构造函数:

public class MainViewModel : ViewModelBase
{
    private string _myParameter;
    public string MyParameter
    {
        get { return _myParameter; }
        set { SetProperty(ref _myParameter, value); }
    }

    public MainViewModel()
    {
    }

    public MainViewModel(string myParameter)
    {
        MyParameter = myParameter;
    }
}
  1. 在代码中实例化ViewModel,并将参数传递给构造函数,然后将ViewModel设置为DataContext。

例如,在窗口的构造函数中实例化ViewModel:

public MainWindow()
{
    InitializeComponent();

    string myParameter = "Parameter Value";
    MainViewModel viewModel = new MainViewModel(myParameter);
    DataContext = viewModel;
}

注意:如果使用第二种方法,需要确保ViewModel的构造函数能够处理参数。如果ViewModel有多个构造函数,可以使用依赖注入框架来选择构造函数并注入参数。

xamlcs文件实例化ViewModel并将其设置为DataContextViewModel有参数如何实例化

原文地址: https://www.cveoy.top/t/topic/bXm0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录