所以我遇到了这个奇怪的问题。我有一个绑定到 ViewModel 的 TextBox :
<TextBox DockPanel.Dock="Right" Text="{Binding Path=FilterText, UpdateSourceTrigger=PropertyChanged}"/>
使用FilterText 的内容,我正在过滤一个ListBox
(绑定到一个ObservableCollection
)。
现在一切正常。但是每次击键后, this 的光标位置TextBox
一直重置到开头。这仅发生在这个特定TextBox
的 . 我有其他绑定TextBox
工作得很好。
我用谷歌搜索了一下,发现这发生在.NET4.0
. 但主要是在涉及字符串格式化或字符串到双重转换时。但是 FilterText 是简单的String
属性,任何double
地方都不涉及任何变量。
这是代码:
private String _filterText;
public String FilterText
{
get { return _filterText; }
set
{
if (_filterText != value)
{
_filterText = value;
RaisePropertyChanged("FilterText");
FilterList(); //this method works fine
}
}
}
有人可以解释为什么会这样吗?在其他地方建议的解决方案包括更改UpdateSourceTrigger
或LostFocus
使用附加行为来手动设置光标位置。还有其他更简单的解决方案吗?或者这只是一个错误?