2013-04-17 3 views
0

콤보 박스로 데이터 바인딩을 시도 중입니다. 데이터는 이름이 tbltest이고 테이블에 2 개의 fileds ID와 이름이있는 데이터베이스 테이블에서 가져옵니다.콤보 박스에서 실버 라이트 4로 데이터 바인딩 .

이름을 combox에 바인드하려고 할 때,보기에 tbltest : name이 표시됩니다. 도메인 서비스와 MVVM을 사용하여 데이터를 바인딩하고 있습니다.

다음은 뷰 모델의 내 코드입니다 :

public ViewModel() 
    { 
     var query = context.GetTblTestsQuery(); 
     var load = context.Load(query); 
     load.Completed += (s, ea) => 
     { 
      ObsCompanyCollection = new ObservableCollection<tblTest>(context.tblTests); 

     }; 

    } 
    private ObservableCollection<tblTest> _ObsCompanyCollection = new ObservableCollection<tblTest>();  
    public ObservableCollection<tblTest> ObsCompanyCollection 
    { 
     get 
     { 
      return _ObsCompanyCollection; 
     } 
     set 
     { 
      if (_ObsCompanyCollection != value) 
      { 
       _ObsCompanyCollection = value; 
       NotifyPropertyChanged("ObsCompanyCollection"); 
      } 
     } 

    } 

아래 내 XAML 파일의 코드 :이 코드에 어떤 문제가 있는지 잘 모릅니다

<UserControl.Resources> 
    <my:ViewModel x:Key="ViewModel"/> 
</UserControl.Resources> 
<Grid x:Name="LayoutRoot" Background="White" DataContext="{StaticResource ViewModel}"> 


    <ComboBox Height="23" HorizontalAlignment="Left" Margin="47,128,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" DisplayMemberPath="{Binding name,Mode=TwoWay}" ItemsSource="{Binding ObsCompanyCollection,Mode=TwoWay}" SelectedItem="{Binding tbldata.SelectCompanyId,Mode=TwoWay}" /> 

. 내 콤보 상자에 표시 할 이름 만 원한다.

감사

+1

변경을 통해 UR 답장, DisplayMemberPath = "이름" – Sajeetharan

+0

감사의 표시 멤버 경로를 시도하지만 난 ID를 저장하려면 선택된 항목의 다른 테이블로의 이동 tbldata. 그래서 내가 어떻게 seleted 항목의 ID를 얻을 수 있습니다. 데이터를 저장할 때 null로 저장됩니다. – Hitesh

+0

선택한 값을 가져 오려면 var x = (사용자의 itemsource 객체) combobox.SelectedItem; – Sajeetharan

답변

1

는 ... 그 wroking 미세이

<ComboBox Height="23" HorizontalAlignment="Left" Margin="47,128,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" DisplayMemberPath="name" ItemsSource="{Binding ObsCompanyCollection,Mode=OneWay}" 
관련 문제