私はデータベースのアイテムでDataGridにデータを入力するwpfアプリケーションに取り組んでいます。アイテムは、コーヒーショップでユーザーを表し、その画像がどのくらいのお金、彼らが作った...ここにある :ユーザー名でデータグリッドに項目をグループ化する方法
ジョン
現金$ 192,00ジョンドウ
現金$ 75,00
カート75,00
は、今のところ私はこのように私のデータグリッドを移入しています:
dtgCashAmount.ItemsSource = null;
dtgCashAmount.ItemsSource = BController.GetAllFinancialTransactionsByAllUsers(dateFrom, dateTo);
しかし、私は(ユーザー名でacctuallyグループ項目に)このような何かを試してみました - しかし、それは動作しませんでした:
まず私はWindow.Resources
を追加しました私はでこれを追加しました。この後
<Window.Resources>
<Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<StackPanel>
<TextBlock Text="{Binding Name}"/>
<ItemsPresenter />
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
:私のXAMLで
<GroupStyle ContainerStyle="{StaticResource GroupHeaderStyle}">
<GroupStyle.Panel>
<ItemsPanelTemplate>
<DataGridRowsPresenter/>
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
そして、私のC#コードで私はこのような何か試してみた:
ListCollectionView collection = new ListCollectionView(DatabaseResults);
collection.GroupDescriptions.Add(new PropertyGroupDescription("Username"));
を基本的に私は言った:オーケーグループIが提供されるように、私はユーザー名で、データベースから取得し、これらの結果は、結果を得るために上記の私の質問(下の画像)。 残念ながら私は次のエラーを受け取りました:
ItemsSourceを使用する前に、アイテムコレクションを空にする必要があります。私はどこにも私のデータグリッドのソースを設定していないよという確認としても
..
のDataGrid XAML:
<DataGrid Grid.Row="1" IsReadOnly="True" Name="dtgCashAmount " EnableRowVirtualization ="True" EnableColumnVirtualization = "True" GridLinesVisibility="Horizontal" AutoGenerateColumns="False" RowHeaderWidth="0" CanUserAddRows="False">
<GroupStyle ContainerStyle="{StaticResource GroupHeaderStyle}">
<GroupStyle.Panel>
<ItemsPanelTemplate>
<DataGridRowsPresenter/>
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
<DataGrid.CellStyle>
<StaticResource ResourceKey="DataGridCentering"/>
</DataGrid.CellStyle>
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="#0091EA"/>
<Setter Property="Opacity" Value="1"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="FontFamily" Value="Arial"/>
<Setter Property="Height" Value="40"/>
</Style>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="LightBlue"/>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn x:Name="colPaymentType" Binding="{Binding PaymentType.Title }" Header="Payment type" Foreground="Black" FontSize="{x:Static local:Globals.dataGridfontSizeContent}" FontFamily="Verdana" Width="10*"/>
<DataGridTextColumn x:Name="colKorisnik" Binding="{Binding Username }" Header="Username" Foreground="Black" FontSize="{x:Static local:Globals.dataGridfontSizeContent}" FontFamily="Verdana" Width="10*"/>
<DataGridTextColumn x:Name="colPrice" Binding="{Binding TotalAmount}" Header="Total amount" Foreground="Black" FontSize="{x:Static local:Globals.dataGridfontSizeContent}" FontFamily="Verdana" Width="10*"/>
</DataGrid.Columns>
</DataGrid>
MM8が、それは次のようになります私を助けた後、 :
私は(ユーザーテストのために、それは組織的うれしいです)より進歩してインターネットの例で見た:
MM8メイトが、それはこのような何かを達成することが可能でしょうか?
dtgCashAmountのXAMLまたはグループ化されたアイテムを表示している要素を投稿します。GroupStyleをに配置しましたか? –
mm8
1人のユーザーのすべてのデータを1行に表示するか、またはすぐ隣に表示しますか?金額とタイプを入力してにユーザの「お支払い」を変更してください。だから、支払リストが表示されるフィールドがある –
LenglBoy
@ mm8それは –