为datagrid组合框中的每一行添加不同的ItemsSource

时间:2016-04-27 14:14:43

标签: c# wpf binding

我需要声明一个TextBox值列表和一个包含一些字段的ComboBox。每行中的每个ComboBox可能有3或4或5个值,具体取决于我从数据库中提取的内容。但是当我声明字段时,所有TextBox都正确绑定,但最后一个ComboBox始终为空。为清楚起见,我没有添加TexBoxes及其代码。 XAML:

<DataGrid AutoGenerateColumns="False" x:Name="dataGrid" ItemsSource="{Binding Finalize_routing}" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Height="249" Width="582">
     <DataGrid.Columns>
        <DataGridComboBoxColumn Header="Stazione" ItemsSource="{Binding Station}" DisplayMemberPath="stazione_id" ></DataGridComboBoxColumn>
     </DataGrid.Columns>

主要课程:

Finalize_routing = new ObservableCollection<Stazioni_operazioni>();                
Finalize_routing.Add(new Stazioni_operazioni
            {
                Station = new ObservableCollection<Stazioni> { new Stazioni { stazione_id="1"},new Stazioni { stazione_id="2"} }
            });
        }
        InitializeComponent();
        DataContext = this;

stazioni_operazioni:

    private ObservableCollection<Stazioni> station;
    public ObservableCollection<Stazioni> Station
    {
        get { return station; }
        set
        {
            if (station != value)
            {
                station = value;

            }
        }
    }

齐奥尼:

public class Stazioni{
    public string stazione_id { get; set; }
}

1 个答案:

答案 0 :(得分:0)

班级“stazioni”有一些问题,没有找出原因。但是我使用了一个字符串列表而不是

final_route={"1","2","3"};
Finalize_routing.Add(new Stazioni_operazioni
    {
    Station = final_route
});

和xaml:

            <DataGridTemplateColumn Header="Stazione" Width="80">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ComboBox ItemsSource="{Binding Path=Station,Mode=TwoWay}" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>