xamlcs文件实例化ViewModel并将其设置为DataContextViewModel有参数如何实例化
如果ViewModel有参数,可以通过以下方式实例化:
- 在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;
}
}
- 在代码中实例化ViewModel,并将参数传递给构造函数,然后将ViewModel设置为DataContext。
例如,在窗口的构造函数中实例化ViewModel:
public MainWindow()
{
InitializeComponent();
string myParameter = "Parameter Value";
MainViewModel viewModel = new MainViewModel(myParameter);
DataContext = viewModel;
}
注意:如果使用第二种方法,需要确保ViewModel的构造函数能够处理参数。如果ViewModel有多个构造函数,可以使用依赖注入框架来选择构造函数并注入参数。
原文地址: https://www.cveoy.top/t/topic/bXm0 著作权归作者所有。请勿转载和采集!