2016-10-28 10 views
0

コンボボックスからアイテムを選択した後、接続されたプロパティが期待通りに更新されません。それはnoobのエラーですが、私が間違っていることを知りたいのですが、してください。radcomboboxにバインドされたプロパティは、アイテムが選択された後に更新されません。

XAML:

<telerik:RadComboBox x:Name="cboFinish" ItemsSource="{Binding}" Text="{Binding finish}" TextSearch.TextPath="theFinish" IsEditable="True" > 

プロパティ:

Private _finish As String 
Public Property finish As String 
    Get 
     Return _finish 
    End Get 
    Set(value As String) 
     _finish = value 
     NotifyPropertyChanged("finish") 
    End Set 
End Property 

コンボのドロップダウン閉じられた場合には、私は新しいのプロパティを更新するには、プロパティにcboFinish.Textの値を割り当てる必要があります選択。このコードは実行する必要はありませんか?
thisOrderFinish.finish = cboFinish.Text

私はそれがINotifyPropertyChangedの仕事だと思っていました。

この動作に気付いたのは、コンボボックスだけです。テキストボックスのプロパティが期待どおりに更新されました。

ありがとうございました。

編集:結合 コンボボックス:

 Dim dt As New DataTable 
     da.Fill(dt) 
     cboFinish.ItemsSource = dt.DefaultView 

     cboFinish.IsTextSearchEnabled = True 
     cboFinish.StaysOpenOnEdit = True 

修正XAML:

+0

たい

は、[選択](http://docs.telerik.com/devtools/wpf/controls/radcombobox/features/selection)を見てください。 – Funk

+0

ありがとうございます。 SelectedValuePath = finishを含むようにxamlを変更しました。それはそれを修正しませんでした。 SelectedValuePath = "{Binding Path = finish}"に変更しました。それはどちらもしなかった。私は助けるかもしれないエラーメッセージを得ています。 "BindingExpressionパスエラー: 'Charcoal Gray'プロパティが 'object'に見つかりません。チャコールグレーは現在選択されているアイテムで、私はそれを「グレー」に変更しようとしています。だから、どういうわけかコンボボックスに表示されている項目がプロパティ名と混同されています。 「Charcoal Grey」はプロパティ名ですか? – EManning

+0

私はwpfのノブであり、本当に助けに感謝します。ありがとうございました。 – EManning

答えて

0

ComboBoxTextプロパティが選択された値を取得するための最良の選択ではありません。

あなたが使用する必要がありますコレクション内の項目に応じて:

  • SelectedItem:コレクション内の項目が文字列
  • SelectedValueあるとき:アイテムの種類がときに「工ass」。 ComboBoxは、各Itemに対して同じプロパティを表示します。このプロパティパスはSelectedValuePathで設定します。

tutorialの4つの可能性のそれぞれが単独で存在します(これらを組み合わせてはいけません)。あなたはおそらくSelectedItem

<telerik:RadComboBox 
    ItemsSource="{Binding}" 
    SelectedItem="{Binding finish}"/> 
+0

コンボボックスはデータテーブルにバインドされています。 SelectedItemのチュートリアルを使用して、TheFinishをそのまま使用してください。OrderFinish = TryCast(cboFinish.SelectedItem、OrderFinish)は "Gray"を返しますが、代わりに "Nothing"を返します。私はこれを試みたが、 "Nothing"も得た。Dim selectedItem As RadComboBoxItem = TryCast(cboFinish.SelectedItem、OrderFinish)。ご協力いただきありがとうございます。私はこれ以上いくつか掘り下げなければならないでしょう。私はあなたの答えが誰かを助けると確信しています。 – EManning

+0

@EManning 'DataTable'行は、クラスが「クラスのプロパティ:SelectedValue」であるクラスのように見えます。 Found [この例](http://stackoverflow.com/questions/2749842/how-to-bind-combobox-with-datatable) – Funk

+0

はい、私もそれを見て、そのアプローチを試みました。しかし、コンボボックスには選択項目がなく、コンボのテキスト部分は空白でした。私の編集を参照してください。私はコンボボックスがどのようにバインドされているか、そしてその例に合わせてXAMLをどのように変更したかを加えました。 – EManning

関連する問題