假设我在表单上有一个文本框并且已启用(用户可以键入他们想要的任何内容。)有一个OneWay绑定设置为字符串属性,因此当ViewModel更改属性时文本盒子更新。现在当用户手动更改文本框中的值时会发生什么。 绑定是否被文本框的新值覆盖? 或者它只是记住值并保持绑定,所以当我下次在ViewModel中更新属性时,更改将反映在UI中吗?
答案 0 :(得分:1)
public class VM : INPCBase
{
private string _myText;
public string MyText
{
get { return _myText; }
set { _myText = value; this.NotifyPropertyChanged(()=>MyText);}
}
public void Blup()
{
this.MyText = "blup";
}
}
public partial class MainWindow : Window
{
private VM data = new VM();
public MainWindow()
{
InitializeComponent();
data.MyText = "sdfjksj";
this.DataContext = data;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
this.data.Blup();
}
}
XAML
<TextBox Text="{Binding MyText, Mode=OneWay}"/>
<Button Click="button1_Click" />
无论用户是否手动更改值,绑定仍然有效。但是用户永远不会从view到viewmodel获取值,因为它的OneWay