绑定到其他控件的选定值

时间:2012-06-19 19:25:28

标签: wpf caliburn.micro

我有一个使用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"/>

但是这没用。你能告诉我我错过了什么吗?

1 个答案:

答案 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属性。