0

コンボボックスのテキスト プロパティへのバインドに問題があります。コンボボックスで何かを選択するまでバインドしないようです。その後、正常に動作します。

テストアプリからの直接のコードは次のとおりです。

意見

<ComboBox ItemsSource="{Binding ListItems}"
          Text="{Binding Test}" />

ビューモデル

class ViewModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
    public ObservableCollection<string> ListItems { get; set; }
    public ViewModel()
    {
        ListItems = new ObservableCollection<string>();
        ListItems.Add("Southwest");
        ListItems.Add("South");
    }

    public string Test
    {
        get { return "South"; }
        set { PropertyChanged(this, new PropertyChangedEventArgs("Test")); }
    }
}

ただし、監視可能なコレクション アイテムの順序を逆にすると、すべて正常に動作します。

ListItems.Add("South");
ListItems.Add("Southwest");

何が起きてる?

4

2 に答える 2

2

text プロパティはこのようには機能しません。このドキュメントを読む: http://msdn.microsoft.com/en-us/library/system.windows.controls.combobox.text.aspx

hameleon86 が提案したように、代わりに selecteditem を使用してください。

Text プロパティがデフォルトでコレクションの最初の項目を取得するため、コレクションの順序を逆にするとうまくいくと思います

于 2013-01-10T15:58:57.573 に答える
0

私はあなたがやりたいと思うかもしれません:

PropertyChanged(これ、新しい PropertyChangedEventArgs("ListItems"));

要素を挿入した後。

于 2013-01-10T15:19:29.883 に答える