1

我有一个使用 caliburn.micro 的 wpf 应用程序。它有一个数据网格和一个组合框。

这是数据网格:

<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"/>

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

4

1 回答 1

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属性DataContext,然后CounterpartyNameId是对象的属性SelectedTriageMapRecord

于 2012-06-19T19:31:14.420 回答