1

私のアプリケーションでは、wpfツールキットのWPFオートコンプリートボックスを使用しています。MVVMパターンを介して実装しています。バインディングは正常に機能しますが、オートコンプリートボックスのコンテンツをクリアしようとすると小さな問題が発生します。ビューモデルのバインドされたプロパティをnullに設定すると、テキストが部分的にのみクリアされます(キーボードから入力されたすべてのテキストはクリアされません。つまり、すべての都市をフェッチするときにCHと入力し、シカゴを選択して、バインドされたプロパティをnullに設定すると、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");
}

コードの何が問題になっているのか理解できませんか、それともこれはオートコンプリートボックスの単なるバグですか?

徹底的な調査の結果、次の記事を見つけました。MVVMを使用してSilverlight AutoCompleteBox SearchTextをクリアするにはどうすればよいですか。ただし、解決策は提供されていません。AutoCompleteBoxに読み取り専用でセッターを持つことができないSearchTextプロパティがあるようです

4

1 に答える 1

5

最後にそれを手に入れました。誰かが興味を持っている場合、解決策は単純に ClearTown 関数に変更NewTown = nullすることです。NewTown = new NewTown()

于 2012-09-14T20:10:02.640 に答える