1

在我的一个应用程序中,我正在使用 wpf 工具包中的 WPF 自动完成框。我正在通过 MVVM 模式实现它。绑定工作正常,但我在尝试清除自动完成框的内容时遇到了一个小问题。将视图模型中的绑定属性设置为空,仅部分清除文本(通过键盘输入的所有文本都不会清除 - 即,如果我在获取所有城市时输入 CH 并选择芝加哥并将绑定属性设置为空,则 CH没有被清除,其余的 ICAGO 是。)

XAML 如下所示:

           <my:AutoCompleteBox Grid.Row="0"
                                Grid.Column="1" 
                                HorizontalAlignment="Left" 
                                Margin="0,6,0,0" 
                                Name="acTown" 
                                SelectedItem="{Binding NewTown, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                ValueMemberBinding="{Binding Converter={StaticResource TownConverter}}"        
                                Populating="Populating"
                                VerticalAlignment="Top" 
                                Height="Auto" 
            </my:AutoCompleteBox>

视图模型中清除框的方法是:

   public void ClearTown()
    {

    NewTown = null;

    OnPropertyChanged("NewTown");
}

我无法弄清楚代码有什么问题,或者这只是自动完成框中的一个错误?

经过广泛的研究,我发现了这篇文章:How do you clear the Silverlight AutoCompleteBox SearchText using MVVM,但它没有提供解决方案。AutoCompleteBox 上似乎有一个 SearchText 属性,它是只读的,不能有一个设置器

4

1 回答 1

5

终于明白了。如果有人感兴趣,解决方案是简单地更改NewTown = nullNewTown = new NewTown()ClearTown 函数。

于 2012-09-14T20:10:02.640 回答