【发布时间】:2015-06-01 22:13:42
【问题描述】:
我无法在视图模型的 SET 属性中定位断点,因此默认值没有更改。 (Get - 没问题,它用有效的默认值初始化我的文本框。)
我有一个 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 中点击这个断点。错误在哪里?
【问题讨论】:
-
ViewModel 是在哪里定义的,主要是它会遍历一个资源,然后被称为
Text="{Binding TextField, Mode=TwoWay, Source={StaticResource KeyOfViewModelInResources}}" -
很难翻译所有这些,但问题可能与您的
Binding有关。检查输出窗口以获取线索。此外,您不需要在 View Model 中创建一个属性来公开您的模型的属性。您可以改为绑定到模型的属性。