0

GridView のヘッダーに、左側にグループ名、右側にシンボルを含めるようにして、これを行いました。

                    <GroupStyle.HeaderTemplate>
                        <DataTemplate>
                            <Grid>

                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition
                                        Width="*"></ColumnDefinition>
                                    <ColumnDefinition
                                        Width="*"></ColumnDefinition>
                                </Grid.ColumnDefinitions>

                                <Button
                                    Grid.Column="0"
                                    AutomationProperties.Name="Group Title"
                                    Style="{StaticResource TextPrimaryButtonStyle}" />


                                    <Button
                                        Grid.Column="1"
                                        Content="&#xE0A1;"></Button>
                            </Grid>
                        </DataTemplate>
                    </GroupStyle.HeaderTemplate>

残念ながら、シンボルは常にグループ タイトルの左右に表示されます。

ここに画像の説明を入力

グループ ヘッダーの要素を右揃えにするにはどうすればよいですか?

編集: 個々のグループ内の画面とアイテムの数によってグループの幅が異なる可能性があるため、グリッド列の固定サイズは機能しません。

4

2 に答える 2

0

msdn フォーラムで非常に優れた解決策を見つけました。ここにあります:

まず、Datatemplate でコンテナーの幅を計算するコンバーターを作成します。私の場合はグリッドです。

class WidthConverter : IValueConverter
{
    #region IValueConverter Member

    public object Convert(object value, Type targetType, object parameter, string language)
    {
        int x;
        if (parameter != null)
            x = int.Parse(parameter.ToString());
        else
            x = 1;
        if ((int)value % x == 0)
            return (int)value / x * 260 - 5;
        else
            return ((int)value / x + 1) * 260 - 5;
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }

    #endregion
}

ページのリソースで宣言します

<local:WidthConverter x:Key="WidthConverter"/>

最後にバインディングを使用して使用し、グリッドの幅を計算します。

<Grid Width="{Binding Items.Count, Converter={StaticResource WidthConverter}, ConverterParameter=2}">

コンバーターのパラメーターを表示される行数に設定します。これは、制限しない場合の画面解像度に依存します。

コンバーターの 260 を、itemstemplate のサイズと余白に一致する数値に置き換えます。

于 2013-04-11T08:48:31.673 に答える