我的问题是:
我有MyAutoCompleteBox
,ACBoxDest
(它仅从AutoCompleteBox
继承新事件EnterKeyDown
,但这与我的问题无关){{1}只是代码隐藏中设置的字符串列表。
我想将ItemsSource
中的文本绑定为始终与我在名为ACBoxDest
的代码隐藏中的公共字段相同。
目前,当我更改代码隐藏中的DestPath
变量时,它也不会更改gui中的DestPath
文本。
.xaml:
ACBoxDest
代码隐藏:
<MyACBox:MyAutoCompleteBox x:Name="ACBoxDest" FilterMode="StartsWith"
Text="{Binding Path=DestPath, Mode=TwoWay}"
ItemContainerStyle="{StaticResource containerStyle}"
Populating="ACBoxDestPopulating"
KeyboardNavigation.TabIndex="1"
EnterKeyDown="EnterKeyHandler"
GotFocus="ACBoxDestFocused"
LostFocus="ACBoxDestUnfocused" />
^为了简化解释调试,每次都会弹出public string DestPath {get;set;}
...
private void Initialize()
{
DestPath = _DEFAULT_TARGET_PATH;
if (!ACBoxDest.Text.Equals(DestPath))
MessageBox.Show("ACBoxDest.Text != DestPath");
}
。这意味着MessageBox
内的文字不等于ACBoxDest
,即使它们已被约束DestPath
。有谁知道为什么会发生这种情况以及如何解决它?
非常感谢。感谢。