在我的项目中,我有一个数据网格,其中包含模板列(组合框)和数据网格文本列。如何将数据网格文本列绑定到模板列中组合框的选定项目中的属性。
例如,第一列是包含组合框的模板列,下一列是常规数据网格文本列。如何将文本列文本绑定到模板列中组合框的选定项目中的属性。
我试过这个但却给出了绑定错误
<DataGrid
Grid.Column="0"
Grid.Row="3"
Grid.ColumnSpan="9"
AutoGenerateColumns="False"
Margin="5"
CanUserDeleteRows="False" CanUserAddRows="False"
DataContext="{Binding}"
IsEnabled="{Binding EnableControls}"
ItemsSource="{Binding SalesItemCollection}"
EnableRowVirtualization="False"
EnableColumnVirtualization="False"
IsSynchronizedWithCurrentItem="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Batch" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox x:Name="comboBox"
IsEditable="True"
MaxDropDownHeight="125"
DisplayMemberPath="BatchName"
VerticalAlignment="Stretch"
VerticalContentAlignment="Center"
IsSynchronizedWithCurrentItem="False"
SelectedValuePath="BatchId"
SelectedValue="{Binding BatchId}"
SelectedItem="{Binding Batch}"
ItemsSource="{Binding Path=DataContext.BatchColection,
RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn IsReadOnly="True" Header="Expiry "
Binding="{Binding ElementName = comboBox, Path=SelectedItem.Expirydate}" />
</DataGrid.Columns>
我尝试将Binding ElementName = comboBox
更改为Binding Source={x:Reference comboBox}
。但它抛出异常。
谁能告诉我一个解决方案。
答案 0 :(得分:1)
由于您已将所选项目绑定到批处理使用,请尝试此
<DataGridTextColumn IsReadOnly="True" Header="Expiry "
Binding="{Binding Source=Batch, Path=Title}" />