我无法在View Model的SET属性中定位断点,因此默认值未更改。 (获取 - 没问题,它使用有效的默认值初始化我的文本框。)
我有一个model.cs 公共字符串字段定义的位置
model.cs
{
..
public textDefValue = "aaa";
}
这是一个ViewModel
{
..
Model model = new Model();
....
public string TextField
{
get { return model.textDefValue; }
set
{
//break point here
model.textDefValue = value;
RaisePropertyChanged(TextField);
}
}
....
protected void RaisePropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
和XAML:
<TextBox x:Name="myBox" Text="{Binding ViewModel.TextField, Mode=TwoWay}">
我想当我在这个文本框中键入内容时,SET会起作用,我会定位一个断点但是,我无法在SET中打破这个中断。哪个错误?
答案 0 :(得分:6)
没有错误,只是一种误解。
默认情况下,控件的.Text
属性的绑定仅在您离开框时更新(即将焦点移动到其他控件)。您需要单击或标签离开要更新的值和要触发的断点。
您可以通过更新绑定来更改此行为,如下所示:
Text="{Binding ViewModel.TextField, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
这将导致每次文本值更改时更新绑定 - 即文本框中的按键。