2014-02-24 3 views
0

개체 목록에서 name 속성을 (QBD.Name)에 바인딩하는 편집 가능한 콤보 상자가 있습니다. 내가 알아낼 수없는 것은 그 이름의 편집을 허용하는 것입니다. 편집을 시도 할 때 객체 참조 오류가 계속 발생합니다.편집 가능한 콤보 박스 바인딩

저는 INotifyPropertyChanged를 구현해야한다고 생각합니다. 그러나 어떻게 작동하는지 완전히 확신 할 수 없습니다.

또한
Public Class QBDs 

Private QBDsLocal As New ObservableCollection(Of QBD) 

Public Property QBDs As ObservableCollection(Of QBD) 
    Get 
     Return QBDsLocal 
    End Get 
    Set(value As ObservableCollection(Of QBD)) 
     QBDsLocal = value 
    End Set 
End Property 
End Class 


Public Class QBD 
Private NameLocal As String 

Public Property Name As String 
    Get 
     Return NameLocal 
    End Get 
    Set(value As String) 
     NameLocal = value 
    End Set 
End Property 
End Class 

내가 콤보 상자에서 개체를 선택하면, 어떻게이 이름이 표시되는 가질 수 있습니다

다음
<ComboBox Name="cmbBxQBDNames" Text="Please Select a QBD" ItemsSource="{Binding Path=QBDs, Mode=TwoWay, UpdateSourceTrigger=LostFocus}" DisplayMemberPath="QBD.Name" SelectedValuePath="QBD.Name" IsEditable="True" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="auto" MinWidth="25" Margin="45,0,0,0" Foreground="Black"></ComboBox> 

내가 바인딩있어 개체입니다 : 여기

바인딩 코드입니다 콤보 박스에요? 현재는 비어 있습니다.

답변

0

DisplayMemberPath 문제가 있다고 생각합니다.

이 DisplayMemberPath = "이름"과 시도

이 실패하면 알려주세요.

+0

주셔서 감사합니다 응답 쿠마,하지만 아무것도하지 않았다. – user

0

왜 이것이 실패하는지 알 수 없으므로 문제를 테스트하기 위해 작성한 코드를 참조하십시오.

<ComboBox ItemsSource="{Binding MyCollection}" DisplayMemberPath="FName" SelectedValuePath="SName" Height="40" IsEditable="True" /> 

는 // 내 DataContext를 여기

public class Model 
    { 
     private string sName; 

     public string SName 
     { 
      get { return sName; } 
      set { sName = value; } 
     } 
     private string fName; 

     public string FName 
     { 
      get { return fName; } 
      set { fName = value; } 
     } 

    } 
    public class ViewModel 
    { 
     private ObservableCollection<Model> myColl; 

     public ObservableCollection<Model> MyCollection 
     { 
      get { return myColl; } 
      set { myColl = value; } 
     } 

     public ViewModel() 
     { 
      MyCollection = new ObservableCollection<Model>(); 
      MyCollection.Add(new Model { FName = "Tony", SName = "Strark" }); 
      MyCollection.Add(new Model { FName = "Bruce", SName = "Wayne" }); 
      MyCollection.Add(new Model { FName = "Miranda", SName = "Frost" }); 

     } 

    } 

// 간다 나는이 날 한 번 확인하시기 바랍니다 및 용서해주십시오 위해 잘 작동

, DataContext에로 뷰 모델을 설정했습니다 VB에서 코드를 제공하지 않습니다.

감사합니다,