我有两个班级
Company
CompanyKey
CompanyName
Person
FirstName
LastName
CompanyKey
组合框中的列表项绑定到CompanyObjects的集合。
如何将Combobox的选定项属性数据绑定到Person.CompanyKey属性?
答案 0 :(得分:1)
如果我已正确理解您的问题,这里有一个演示应用程序来解释组合框的数据绑定:Demo App
希望这有帮助。
问候,
Mihir 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>
答案 1 :(得分:0)
解决方案很简单,您需要使用IValueConverter将Company转换为Person对象。
有关IValueConverter的更多信息,请参阅: http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx
然后你可以在你的xaml中绑定它,例如: {Binding Path = combox.SelectedItem,Converter = {StaticResource CompanyToPersonConvertor}}