나는 두 클래스 WPF : 데이터 바인딩 및 콤보 박스
Company
CompanyKey
CompanyName
Person
FirstName
LastName
CompanyKey
콤보 상자의 목록 항목
CompanyObjects의 컬렉션에 바인딩되어 있습니다.콤보 상자의 선택된 항목 속성을 Person.CompanyKey 속성에 어떻게 데이터 바인딩합니까?
나는 두 클래스 WPF : 데이터 바인딩 및 콤보 박스
Company
CompanyKey
CompanyName
Person
FirstName
LastName
CompanyKey
콤보 상자의 목록 항목
CompanyObjects의 컬렉션에 바인딩되어 있습니다.콤보 상자의 선택된 항목 속성을 Person.CompanyKey 속성에 어떻게 데이터 바인딩합니까?
질문을 올바르게 이해했다면, 여기 콤보 상자의 데이터 바인딩을 설명하는 데모 앱이 있습니다 : 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>
너무 쉽게 보입니다. 나는 그것이 엉덩이에 큰 고통이 될 것으로 예상했는데, 단지 몇 가지 속성이 아닙니다. –
해결책은 간단합니다. 회사로 변환하려면 IValueConverter를 사용해야합니다. IValueConverter에 대한 자세한 내용은
, 참조하십시오 {바인딩 경로 = combox.SelectedItem, 컨버터 = {정적 리소스 CompanyToPersonConvertor}}
당신이 귀하의 질문에 제대로 표현한되어 있는지 확인 코드 샘플에서 조각 있습니까? 콤보 상자에 회사 개체가 포함되어있는 경우 선택한 항목이 사용자 클래스에 따라 달라질 것이라고 어떻게 예상 할 수 있습니까? 회사 당 사람이 한 명입니까? – Timores
콤보 상자는 해당 사용자가 속한 회사를 나타내는 데 사용됩니다. –