0

我无法在我的 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. List<string>我的组合框列出了 ViewModelGrilleTarifaire 类中定义的ListePays ( ) 列表中包含的值。

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

欢迎任何帮助!

谢谢!

一个。

4

3 回答 3

0

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

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

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

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

于 2012-10-17T18:34:06.560 回答
0

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

<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>
于 2012-10-17T18:15:24.563 回答
0

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

于 2012-10-30T13:44:46.327 回答