2

2 つのレベルのコレクションを持つクラスがあります。ソフトウェアは給与支払いに関するものです。アイデアは、複数の有給従業員で構成される支払いアクションです。そして、各従業員は複数の給与削減を受ける可能性があります。オブジェクトは次のようになります。

Payment -->Payment Object
  Date
  ID
  Employees: -->ObservableCollection of EmpPayment Objects
     Emp A   -->And EmpPayment Object
        Name
        TotalCut --> An Integer Readonly Property that sums the Cuts.
        Cuts   --> Collection of Cut object
           Cut1  --> Cut object 1
           Cut2  --> Cut object 2
     Emp B
        Name
        TotalCuts
        Cuts
           Cut1
           Cut2

私は超過DataGridを使用しています。これまでのところ、CellContentTemplate を使用して 1 つの列に 2 つの値、つまり Cuts と TotalCut を表示したいことを除けば、これで問題ありません。したがって、データグリッドは次のようになります。

Employee | Cuts
Emp A    | [The Total Cut]
           Cut 1
           Cut 2
Emp B    | [The Total Cut]
           Cut 1
           Cut 2

カット列では、Xceed DropDownButton を使用して合計を表示したいと考えており、ユーザーは dropdowncontent を編集してカットを編集できます。これまでのところ、Employees ObservableCollection 用に作成した XAML は次のとおりです。

<xcdg:DataGridControl x:Name="GridEmployees" ItemsSource="{Binding Employees}" AutoCreateColumns="False">
    <xcdg:DataGridControl.Columns>
        <xcdg:Column FieldName="Name" Title="Employee"/>

        <xcdg:Column FieldName="Cuts" Title="Cuts">
            <xcdg:Column.CellContentTemplate>
                <DataTemplate>
                    <xctk:DropDownButton Content="{Binding Path=TOTALCUT}">
                        <xctk:DropDownButton.DropDownContent>
                            <ListBox ItemsSource="{Binding}">
                                <ListBox.ItemTemplate>
                                    <DataTemplate>
                                        <StackPanel Orientation="Horizontal">
                                            <TextBox Text="{Binding CutDescription}"/>
                                            <TextBox Text="{Binding Amount}"/>
                                        </StackPanel>
                                    </DataTemplate>
                                </ListBox.ItemTemplate>
                            </ListBox>
                        </xctk:DropDownButton.DropDownContent>
                    </xctk:DropDownButton>
                </DataTemplate>
            </xcdg:Column.CellContentTemplate>
        </xcdg:Column>

    </xcdg:DataGridControl.Columns>
</xcdg:DataGridControl>

Cuts ObservableCollection へのバインドはうまく機能しますが、TotalCut へのバインドはうまくいきません。TotalCut [意図的にすべて大文字で書かれている] を同じ列にバインドするにはどうすればよいですか? 2 つの列を使用することは可能ですが、きれいではありません。

4

2 に答える 2

3

XCeed DataGridControl を忘れて、標準の DataGrid にようこそ。そこで DataGridTemplateColumn を使用するだけです。

もう 1 つの方法は、XCeed DataGridControl で 2 つの列を使用することです。

于 2013-03-16T03:04:02.247 に答える