2010-03-20 8 views
0

나는 두 클래스 WPF : 데이터 바인딩 및 콤보 박스

Company 
    CompanyKey 
    CompanyName 

Person 
    FirstName 
    LastName 
    CompanyKey 

콤보 상자의 목록 항목

CompanyObjects의 컬렉션에 바인딩되어 있습니다.

콤보 상자의 선택된 항목 속성을 Person.CompanyKey 속성에 어떻게 데이터 바인딩합니까?

+0

당신이 귀하의 질문에 제대로 표현한되어 있는지 확인 코드 샘플에서 조각 있습니까? 콤보 상자에 회사 개체가 포함되어있는 경우 선택한 항목이 사용자 클래스에 따라 달라질 것이라고 어떻게 예상 할 수 있습니까? 회사 당 사람이 한 명입니까? – Timores

+0

콤보 상자는 해당 사용자가 속한 회사를 나타내는 데 사용됩니다. –

답변

1
: 당신은 다음과 같이 사용하여 XAML에서 바인딩 할 수 http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx

질문을 올바르게 이해했다면, 여기 콤보 상자의 데이터 바인딩을 설명하는 데모 앱이 있습니다 : Demo App

희망이 있습니다.
감사
미 히어 Gokani

편집 :

<Window 
    x:Class="WpfApplication.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" 
    Height="300" 
    Width="300"> 
    <StackPanel> 

     <TextBlock 
      Margin="10">Persons</TextBlock> 
     <ComboBox 
      x:Name="comboPersons" 
      Height="25" 
      Margin="10" 
      ItemsSource="{Binding Persons}"> 
      <ComboBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel 
         Orientation="Horizontal"> 
         <TextBlock 
          Text="{Binding FirstName}" 
          Margin="0,0,5,0" /> 
         <TextBlock 
          Text="{Binding LastName}" /> 
        </StackPanel> 
       </DataTemplate> 
      </ComboBox.ItemTemplate> 
     </ComboBox> 

     <TextBlock 
      Margin="10">Companies</TextBlock> 
     <ComboBox 
      x:Name="comboCompanies" 
      Height="25" 
      Margin="10" 
      ItemsSource="{Binding Companies}" 
      DisplayMemberPath="CompanyName" 
      SelectedValuePath="CompanyKey" 
      SelectedValue="{Binding SelectedItem.CompanyKey, ElementName=comboPersons}" /> 

    </StackPanel> 
</Window> 
+0

너무 쉽게 보입니다. 나는 그것이 엉덩이에 큰 고통이 될 것으로 예상했는데, 단지 몇 가지 속성이 아닙니다. –

0

해결책은 간단합니다. 회사로 변환하려면 IValueConverter를 사용해야합니다. IValueConverter에 대한 자세한 내용은

, 참조하십시오 {바인딩 경로 = combox.SelectedItem, 컨버터 = {정적 리소스 CompanyToPersonConvertor}}