我有一个使用caliburn.micro的wpf应用程序。 它有一个数据网格和一个组合框。
这是DataGrid:
<DataGrid x:Name="TriageMapRecords"
Grid.Row="0" Grid.ColumnSpan="5"
AutoGenerateColumns="False"
BaseControls:DataGridExtension.Columns="{Binding TriageMapRecordColumns}"
CanUserAddRows="False" IsReadOnly="True"
SelectedItem="{Binding Path=SelectedTriageMapRecord, Mode=TwoWay}">
SelectedTriageMapRecord对象包含一个字段CounterpartyNameId。
我想将组合框中的选定值绑定到SelectedTriageMapRecord的CounterpartyNameId。
我试过了:
<ComboBox x:Name="RefCounterparties"
DisplayMemberPath="Name" SelectedValuePath="Id"
SelectedValue="{Binding Source=SelectedTriageMapRecord,
Path=CounterpartyNameId, Mode=TwoWay}"
Grid.Row="1" Grid.Column="1" HorizontalAlignment="Left"
Width="Auto" MinWidth="100" Margin="3,3,0,3"/>
但是这没用。你能告诉我我错过了什么吗?
答案 0 :(得分:1)
看起来你可能想这样做:
<ComboBox x:Name="RefCounterparties"
DisplayMemberPath="Name" SelectedValuePath="Id"
SelectedValue="{Binding SelectedTriageMapRecord.CounterpartyNameId,
Mode=TwoWay}"
Grid.Row="1" Grid.Column="1" HorizontalAlignment="Left"
Width="Auto" MinWidth="100" Margin="3,3,0,3"/>
您不想设置来源,因为您的来源仍然是DataContext
。然后在DataContext
上指定要深入查看的路径。在这种情况下,SelectedTriageMapRecord
的{{1}}属性,然后是DataContext
对象的CounterpartyNameId
属性。