DataGrid中的多层ComboBox绑定

时间:2013-10-21 18:59:40

标签: c# .net wpf xaml telerik

该控件适用于telerik RadGridView,但也可以使用DataGrid的解决方案。

我正在试图弄清楚如何在我的数据网格中绑定几个组合框的itemssources。方案如下:

每行中有3个组合框。

ComboBox#1 - 显示一周中的当前日期,例如。 10月21日星期一,10月22日星期二[...],10月27日星期日。

ComboBox#2 - 根据在ComboBox#1中选择的日期显示可用的JobNumbers。

ComboBox#3 - 显示所选JobNumber的潜在SubJobNumbers。子作业号可以由多个JobNumber使用,因此该表位于桥中....

如果您需要我提供更多信息以帮助澄清情况,请告诉我们。

Database Schema

代码背后:

var dayOfWeekCollectionViewSource = (CollectionViewSource)this.FindResource("DayOfWeekCollectionViewSource");
        dayOfWeekCollectionViewSource.Source = this.currentWeek;
var jobNumberCollectionViewSource = (CollectionViewSource)this.FindResource("JobNumberCollectionViewSource");
        jobNumberCollectionViewSource.Source = this.jobNumbers;

    var subJobNumberCollectionViewSource = (CollectionViewSource)this.FindResource("SubJobNumberCollectionViewSource");
        subJobNumberCollectionViewSource.Source = this.subJobNumbers;

页面资源:

<CollectionViewSource x:Key="DayOfWeekCollectionViewSource"
                          d:DesignSource="{d:DesignInstance System:DateTime, CreateList=True}" />
<CollectionViewSource x:Key="JobNumberCollectionViewSource"
                          d:DesignSource="{d:DesignInstance DataAccess:JobNumber, CreateList=True}" />
<CollectionViewSource x:Key="SubJobNumberCollectionViewSource"                           d:DesignSource="{d:DesignInstance DataAccess:SubJobNumber, CreateList=True}" />

Telerik RadGridView:

<telerik:RadGridView x:Name="TimesheetLineItemGridView"
                             Grid.Row="0"
                             Grid.Column="0"
                             Grid.ColumnSpan="2"
                             ItemsSource="{Binding}"
                             AutoGenerateColumns="False"
                             ShowGroupPanel="False"
                             RowIndicatorVisibility="Collapsed">
    <telerik:RadGridView.Columns>
        <telerik:GridViewCheckBoxColumn Header="Approved"
                                        DataMemberBinding="{Binding Path=ApprovedDateTime, Mode=TwoWay, Converter={StaticResource approvedCheckboxConverter}}" />
        <telerik:GridViewComboBoxColumn Header="Day"
                                        ItemsSource="{Binding Source={StaticResource DayOfWeekCollectionViewSource}}"
                                        DataMemberBinding="{Binding Path=LineItemDate}" />
        <telerik:GridViewComboBoxColumn Header="Job Number"
                                        ItemsSource="{Binding Source={StaticResource JobNumberCollectionViewSource}}"
                                    DataMemberBinding="{Binding Path=JobNumber}" DisplayMemberPath="Code" />
        <telerik:GridViewComboBoxColumn Header="Sub Job Number"
                                        ItemsSource="{Binding Source={StaticResource SubJobNumberCollectionViewSource}}"
                                    DataMemberBinding="{Binding Path=SubJobNumber}" DisplayMemberPath="Code"  />
    </telerik:RadGridView.Columns>
</telerik:RadGridView>

有什么想法吗?

0 个答案:

没有答案