【问题标题】:Binding data grid template column combo box's selected item to data grid text column将数据网格模板列组合框选定项绑定到数据网格文本列
【发布时间】:2016-07-19 01:00:28
【问题描述】:

在我的项目中,我有一个数据网格,其中包含模板列(组合框)和数据网格文本列。如何将数据网格文本列绑定到模板列中组合框的选定项中的属性。

例如,第一列是包含组合框的模板列,下一列是常规数据网格文本列。如何将文本列文本绑定到模板列中组合框的选定项中的属性。

我试过了,但是绑定错误

<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}。但它抛出异常。 谁能告诉我一个解决方案。

【问题讨论】:

    标签: wpf data-binding combobox datagrid datagridtemplatecolumn


    【解决方案1】:

    由于您已经将选定的项目绑定到批量使用,试试这个

    <DataGridTextColumn IsReadOnly="True" Header="Expiry   " 
                        Binding="{Binding Source=Batch, Path=Title}" />
    

    【讨论】:

      猜你喜欢
      • 2021-02-16
      • 2016-04-30
      • 2015-08-29
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多