0
让我们假设我在窗体上有一个文本框并且它被启用(用户可以输入他们想要的任何内容)。有一个OneWay绑定设置为一个字符串属性,所以当ViewModel更改属性时,文本框更新。现在当用户手动更改文本框中的值时会发生什么情况。 绑定是否被文本框的新值覆盖? 或者它只是记住值并保持绑定,所以当我在ViewModel中下次更新属性时,更改将反映在UI中?Silverlight OneWay绑定
让我们假设我在窗体上有一个文本框并且它被启用(用户可以输入他们想要的任何内容)。有一个OneWay绑定设置为一个字符串属性,所以当ViewModel更改属性时,文本框更新。现在当用户手动更改文本框中的值时会发生什么情况。 绑定是否被文本框的新值覆盖? 或者它只是记住值并保持绑定,所以当我在ViewModel中下次更新属性时,更改将反映在UI中?Silverlight OneWay绑定
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" />
绑定如果用户手动更改数值仍然有效不管。但用户永远不会从视图中获取值,因为它的OneWay
只要您调用OnPropertyChanged(“MyText”),文本框再次显示viewmodel中的值。你可以轻松设置一个测试项目。 – blindmeis
所以它不会破坏在上述情况下的绑定? –