【问题标题】:How to display two combobox columns in Datagrid from Dto with collections?如何使用集合在 Dto 的 Datagrid 中显示两个组合框列?
【发布时间】:2016-08-31 19:56:52
【问题描述】:

我需要在我的 datagrid.ItemsSource 属性中显示两个组合框列,其中填充了 ProductModel 类。

public class ProductModel
{
    public int ProductId { get; set; }
    public string Code { get; set; }
    public string Name { get; set; }
    public List<decimal> Prices { get; set; }
    public decimal Cost { get; set; }
    public decimal Stock { get; set; }
    public List<string> Presentations { get; set; }
    public string  BarCode { get; set; }
}

XAML:

<DataGrid x:Name="dgProducts" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Height="343" Width="351" ItemsSource="{Binding ProductList}" AutoGenerateColumns="False" 
             SelectedItem="{Binding SelectedProduct}"  >
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="MouseDoubleClick" >
                   <i:InvokeCommandAction Command="{Binding RowDobuleClickCommand}" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
           <DataGrid.Columns>
                <DataGridTextColumn Header="Descripción" Binding="{Binding Name}" Width="200" />
                <DataGridComboBoxColumn Header="Precios"  Width="70"/>
                <DataGridComboBoxColumn Header="Presentaciónes" Width="70" />
                <DataGridTextColumn Header="Disponible" Binding="{Binding Stock}" Width="100" />
            </DataGrid.Columns>

        </DataGrid>

如何从相同的 itemssource 数据网格或类似的东西绑定属性价格和演示文稿。 ?

【问题讨论】:

    标签: c# wpf mvvm combobox datagrid


    【解决方案1】:

    替换以下代码:

     <DataGridComboBoxColumn Header="Precios"  Width="70"/>
     <DataGridComboBoxColumn Header="Presentaciónes" Width="70" />
    

    以下代码:

        <DataGridTemplateColumn Header="Precios"  Width="100" >
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <ComboBox ItemsSource="{Binding Prices}">
                    <ComboBox.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding}"/>
                        </DataTemplate>
                    </ComboBox.ItemTemplate>
                </ComboBox>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    
        <DataGridTemplateColumn Header="Presentaciónes"  Width="100" >
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <ComboBox ItemsSource="{Binding Presentations}">
                    <ComboBox.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding}"/>
                        </DataTemplate>
                    </ComboBox.ItemTemplate>
                </ComboBox>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      • 2013-06-20
      • 2014-07-24
      • 1970-01-01
      相关资源
      最近更新 更多