Silverlight OneWay绑定

时间:2013-07-01 10:06:07

标签: silverlight mvvm binding viewmodel

假设我在表单上有一个文本框并且已启用(用户可以键入他们想要的任何内容。)有一个OneWay绑定设置为字符串属性,因此当ViewModel更改属性时文本盒子更新。现在当用户手动更改文本框中的值时会发生什么。 绑定是否被文本框的新值覆盖? 或者它只是记住值并保持绑定,所以当我下次在ViewModel中更新属性时,更改将反映在UI中吗?

1 个答案:

答案 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