绑定文本框循环错误

时间:2018-07-18 13:01:46

标签: c# wpf xaml mvvm

我将TextBox绑定到ViewModel。

我正在尝试使用:
string txt = vm.Example_Text;

与:
string txt = tbxExample.Text;


问题

在TextBox中键入可以正常工作。

但是,键入后,如果我从TextBox中单击并转到另一个控件,程序将崩溃并引发错误Make sure you do not have an infinite loop or infinite recursion.


这里只有TextBox和ViewModel的源文件
https://www.dropbox.com/s/n1hfnkmdckpwtms/TextBoxMVVM.zip?dl=0


XAML

<TextBox x:Name="tbxExample" 
         Text="{Binding Example_Text, Mode=TwoWay}"
         IsEnabled="{Binding Example_IsEnabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"

         HorizontalAlignment="Left" 
         VerticalAlignment="Top"
         Padding="1, 1, 0, 0" 
         Margin="0,2,0,0"
         Width="100"
         Height="22"

         MaxLines="1" />

ViewModel

public string _Example_Text;

public string Example_Text
{
    get { return _Example_Text; }
    set
    {
        if (_Example_Text == value)
        {
            return;
        }

        Example_Text = value;
        OnPropertyChanged("Example_Text");
    }
}

调试中的错误似乎突出显示set { };

1 个答案:

答案 0 :(得分:0)

OMG,您使用Example_Text而不是_Example_Text。这意味着要设置Example_Text

的永久循环
set
    {
        if (_Example_Text == value)
        {
            return;
        }

        _Example_Text = value;
        OnPropertyChanged("Example_Text");
    }