C1FlexGrid列数未知

时间:2015-02-18 08:08:32

标签: c# windows-runtime winrt-xaml c1flexgrid

我目前正在调查,如果ComponentOne的FlexGrid符合我的需求,但我遇到了一个我无法解决的问题。

我的目标是在具有未知列数的行中显示(以及稍后:编辑)数据。让我们说这是我的模特:

public class writtenTests
{
    public Student student { get; set; }
    public List<test> tests { get; set;}
}

正如您所看到的,每个学生可能已经进行了零到n次测试,其中每个测试都由一个属性&#34; NumberInCourse&#34;来识别。虽然大多数学生将参加相同数量的考试,但有些学生可能会省略某项考试。

是否有可能(如果是:怎么做)收集ObservableCollection中的所有writtenTests并让C1FlexGrid确定,学生已经完成了多少次测试?

结果表应该看起来像

Student Name    |   Test 1    |   Test 2   |   Test 3 | ...
-----------------------------------------------------------
Name1           |   80%       |   60%      |   66%    | ...
Name2           |   80%       |   n.a.     |   66%    | ...
Name3           |   80%       |   60%      |   66%    | ...

等等。

如果使用C1FlexGrid无法做到这一点(我担心):有人可以提出其他方法来解决这个问题吗?我想避免硬编码给定(和隐式:最大)的测试次数。

非常感谢提前

阿德里安

编辑1:

用户3wic要我发布xaml初始化,所以这里是:

xaml看起来很正常,就像任何人初始化FlexGrid一样:

<c1:C1FlexGrid x:Name="c1FlexGrid1" Grid.Row="1" 
                       AutoGenerateColumns="False"
                       ShowOutlineBar="True"
                       SelectionMode="CellRange"
                       AllowMerging="All"
                       BorderThickness="1">
            <c1:C1FlexGrid.Columns>
                <c1:Column Binding="{Binding Path=student.Nachname}" Width="180"/>
                <c1:Column Binding="{Binding Path=student.Vorname}" Width="120"/>
            </c1:C1FlexGrid.Columns>
        </c1:C1FlexGrid>

在代码隐藏中,我将数据源设置为flexgrid

ObservableCollection<writtenTests> data = dbMethods.getWrittenTests(selectedCourse);

c1FlexGrid1.ItemsSource = new C1.Xaml.C1CollectionView(data);

问题在于我无法添加其他绑定,如

<c1:Column Binding="{Binding Path=tests}" />

因为(同时设置AutoGenerateColumns=true)只生成一个包含List.toString()方法结果的列。

我认为造成这些困难的原因是C1FlexGrid被设计为将一行作为一个具有给定(和硬编码)数量的属性的对象。

0 个答案:

没有答案