WPF - 在双向和单向绑定之间切换?

时间:2015-05-27 13:26:55

标签: c# wpf mvvm data-binding binding

在我的“视图”中,我有一个绑定到ViewModel的字符串属性的TextBox。

我想向View添加一个提交按钮,因此只有在按下此按钮时才会更新基础ViewModels字符串属性。

为了使事情进一步复杂化,此TextBox位于DataGrid内。我认为将绑定UpdateSourceTrigger设置为Explicit可能是答案,但我看不出这是如何工作的。

任何替代解决方案都是将ViewModels String切换为TextBox - 这意味着我会手动填充数据。

2 个答案:

答案 0 :(得分:0)

您可以将按钮绑定到命令并将文本框的文本作为参数传递。

<TextBox x:Name="textBox"></TextBox>

<Button Content="Button" Command="{Binding MyCommand}" CommandParameter="{Binding ElementName=textBox, Path=Text}"/>

在ViewModel中:

    public ICommand MyCommand
            {
                get
                {
                    return new RelayCommand((textBoxText) =>
                    {
                        if (...)
                        {
                            //somelogic;
                        }

                    });
                }
            }

答案 1 :(得分:-1)

在Button中,您可以通过DataContext访问该行

private void ButtonRevise_Click(object sender, RoutedEventArgs e)
{               
    Button btn = (Button)sender;
    GabeLib.SearchItem srchItem = (GabeLib.SearchItem)btn.DataContext;