【问题标题】:DataGridComboBoxColumn Binding with 2 listsDataGridComboBoxColumn 与 2 个列表绑定
【发布时间】:2012-10-17 17:20:15
【问题描述】:

我无法在我的 DataGrid 中绑定 ComboBox 的值:

 <DataGrid Grid.Row="1" Grid.Column="0" ItemsSource="{Binding ListeGrilleTarifaire}" Name="dg_ForfaitCommune" AutoGenerateColumns="False" CanUserAddRows="True" CanUserDeleteRows="False" Visibility="{Binding accesGrilleForfaitCommune}">
    <DataGrid.Columns>
        <DataGridComboBoxColumn Header="{x:Static trad:Langues.lblPays}" ItemsSource="{Binding ListePrixUnitaires}" SelectedItemBinding="{Binding tarifDestination_PAYS,Mode=TwoWay}" Width="80" />
    </DataGrid.Columns>
</DataGrid>
  • 我的 DataGrid ItemsSource 是“ListeGrilleTarifaire”类型的对象

  • ListeGrilleTarifaire 是对象 ViewModelGrilleTarifaire 的列表(属性)。 ViewModelGrilleTarifaire 是我的用户控件的 DataContext(我的 DataGrid 所在的位置)。

我想要的是:

  1. 我的组合框用于列出 ViewModelGrilleTarifaire 类中定义的 ListePays (List&lt;string&gt;) 列表中包含的值。

  2. 当 DataGrid 加载 ListeGrilleTarifaire 对象时,ListeGrilleTarifaire.tarifDestination_PAYS 的值必须在组合框中自动绑定(简而言之......它必须绑定)

欢迎任何帮助!

谢谢!

一个。

【问题讨论】:

    标签: c# wpf xaml binding datagridcomboboxcolumn


    【解决方案1】:

    我认为这段代码与您想要的不完全相同,但它可能会对您有所帮助。

    <sdk:DataGridTemplateColumn Width="150" Header="EstimateIOName">
                <sdk:DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <ComboBox x:Name="cbo" ItemsSource="{StaticResource IOList}" SelectedValue="{Binding Path=EstimateIOName,Mode=TwoWay}" SelectedValuePath="EstimateIOName"  SelectionChanged="cbo_SelectionChanged" DropDownClosed="cbo_DropDownClosed" ></ComboBox>
                    </DataTemplate>
                </sdk:DataGridTemplateColumn.CellEditingTemplate>
            </sdk:DataGridTemplateColumn>
    

    【讨论】:

      【解决方案2】:

      我在您的代码中看不到任何代码问题,只是可能会发生一些事情:

      首先:ListeGrilleTarifaire.tarifDestination_PAYS 必须是一个属性,如果它更好地实现 INotifiyPropertyChanged。

      第二:ListeGrilleTarifaire.tarifDestination_PAYS 必须与 ListePrixUnitaires 商品类型相同。

      如果这对您不起作用,请更好地解释错误... 希望对你有所帮助...

      【讨论】:

      • 我明天试试。我还将尝试使用 MultiBinding(我从未使用过它,但它的名字看起来不错),因为事实上,这是我想要的。我需要绑定到 ListeGrilleTarifaire 和绑定到 ListePrixUnitaires
      • 您想同时显示 ListeGrilleTarifaire 和 ListePrixUnitaires 吗?都是不同的集合,所以你想使用 multi-bingind?让我们看看,DataGrid 应该如何工作是 DataGrid.ItemsSource 应该绑定到 ItemType 的集合,然后必须将每一列引用到该 ItemType 的属性。我认为每个 ListeGrilleTarifaire 都有一个属性 tarifDestination_PAYS,并且您想使用组合框从 ListePrixUnitaires 中选择可能的值。
      • 我终于使用了这个解决方案并且它有效:stackoverflow.com/questions/5409259/…
      【解决方案3】:

      按照这篇文章 (http://stackoverflow.com/questions/5409259/binding-itemssource-of-a-comboboxcolumn-in-wpf-datagrid) 的答案,我为 DataGridComboBoxColumn 定义了样式并且它可以工作

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-30
        • 1970-01-01
        • 2013-04-24
        • 1970-01-01
        • 2012-10-28
        • 1970-01-01
        相关资源
        最近更新 更多