我在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中)。
我想要的是:
我的组合框列出了ViewModelGrilleTarifaire类中定义的ListePays(List<string>
)列表中包含的值。
当DataGrid加载ListeGrilleTarifaire对象时,必须在组合框中自动绑定ListeGrilleTarifaire.tarifDestination_PAYS的值(简而言之......它必须绑定)
欢迎任何帮助!!
谢谢!
一个。
答案 0 :(得分: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>
答案 1 :(得分:0)
我无法在您的代码中看到任何代码问题,只是可能发生的一些事情:
首先:ListeGrilleTarifaire.tarifDestination_PAYS必须是属性,如果它实现了更好的INotifiyPropertyChanged。
第二:ListeGrilleTarifaire.tarifDestination_PAYS必须是同一类型的ListePrixUnitaires项目。
如果这对你不起作用,请更好地解释错误...... 希望对你有帮助......
答案 2 :(得分:0)
按照这篇文章(http://stackoverflow.com/questions/5409259/binding-itemssource-of-a-comboboxcolumn-in-wpf-datagrid)的答案,我为DataGridComboBoxColumn定义了样式并且它可以工作