我有一个名为Customer.xaml的xaml,如下所示:
<Grid x:Name="customview" >
<StackPanel x:Name="CustomPanel" >
<TextBox x:Name="CustomText" />
</StackPanel>
</Grid
使用MVVM我创建了ICustomerviewmodel和Customerviewmodel,如下所示:
public interface ICustomerviewmodel
{
ICommand SaveClientCommand { get; }
}
public class Customerviewmodel : ICustomerviewmodel , INotifyPropertyChanged
{
......
private void ExecuteSaveClient()
{
//
}
我的问题是如何才能获得价值 在函数ExecuteSaveClient()里面保存这个?
答案 0 :(得分:1)
使用绑定表达式:
<TextBox x:Name="CustomText" Text="{Binding TestProperty}" />
TestProperty
是您的视图模型上的公共属性,即当前DataContext
。
如果您希望更新视图模型中的值,并将其反映在视图中,那么TestProperty
属性的setter应调用PropertyChanged
上的INotifyPropertyChanged
事件由视图模型实现的接口。
答案 1 :(得分:1)
您应该在视图模型中声明一个字符串属性:
public string CustomText { get; set; }
将customview的datacontext指定为构造函数中的viewmodel,希望此网格位于UserControl或Window中:
this.customview.DataContext = new CustomerViewModel();
绑定到该属性:
<TextBox x:Name="CustomText" Text="{Binding CustomText}"/>
如果需要TwoWay绑定和通知,请实施INotifyPropertyChanged。
详细了解silverlight数据绑定here。