将属性从类发送到 VM
本文关键字:VM 属性 | 更新日期: 2023-09-27 18:33:37
我有两个类(classVM 和 class1(。在我的类 1 中,我从视图中获得了一个参数。从这个意义上说,一切都有效。
但是,我需要将该参数传输到类虚拟机,而无需在 class1 中创建类虚拟机的实例。
我应该怎么做?
编辑:
参数(它是一个属性(从视图中的行为填充。填充该属性后,需要使用参数/属性填充 VM 中的另一个属性。
编辑:
XAML
<dataContext:ItemTemplateSelectorClass>
<dataContext:ItemTemplateSelectorClass.StringTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Description}" Height="25" Width="75"/>
<TextBox Text="{Binding Value}" Height="23" Width="100">
<i:Interaction.Behaviors>
<dataContext:TextBoxBehavior Parameter="{Binding Description}"/>
</i:Interaction.Behaviors>
</TextBox>
</StackPanel>
</DataTemplate>
</dataContext:ItemTemplateSelectorClass.StringTemplate>
文本框行为中的参数是我创建用于填充的附加属性。说明和值绑定位于另一个类中。我将不同类型的属性、方法和命令分成不同的类以进行错误处理(我知道这不是最好的方法,但这是我必须做的。与行为的绑定工作正常。
XAML 数据上下文
<Window.DataContext>
<dataContext:FieldsModel x:Name="dataContext" />
</Window.DataContext>
虚拟机属性
private object selectedField;
public object SelectedField {
get {
return selectedField;
}
set {
if (selectedField != value) {
selectedField = value;
SetPropertyChanged("SelectedField");
}
}
}
您应该将值存储在模型中,而不是存储在模型中;或者,如果"参数"(可能是指属性(来自视图中控件内的某个属性,请将其复制到视图模型中。