3

WPF アプリで ListView のスタイルを作成して、Windows エクスプローラーの ListView のように表示したいと考えています。私が立ち往生しているのは、列が狭すぎてテキストを修正できない場合にグリッド/詳細ビューに表示される省略記号 (...) です。

各列のセル テンプレートをオーバーライドし、列ごとに省略記号を取得するモードを明示的に設定できることはわかっています。TextTrimmingただし、同じ動作を得るために、任意の ListView に適用できるスタイルが必要です。

次のようにリストビューを定義できるようにしたい:

<ListView ItemsSource="{Binding Library}" Style="{StaticResource ExplorerListStyle}">
    <ListView.View>
        <GridView>
           <GridViewColumn Width="90" Header="Title" DisplayMemberBinding="{Binding Title}" />
           <GridViewColumn Width="60" Header="Author" DisplayMemberBinding="{Binding Author}" />
        </GridView>
    </ListView.View>
</ListView>

TextTrimmingまた、理想的にはテンプレート内のテキストのモードを継承しながら、テキストの色を設定するなど、一部の列のセル テンプレートをオーバーライドできるようにしたいと考えています。

これまでのところ、これを達成できた唯一の方法は、ListView 内の TextBlock スタイルを明示的にオーバーライドすることです。

<ListView ItemsSource="{Binding Library}">
    <ListView.Resources>
        <Style TargetType="TextBlock">
            <Setter Property="TextTrimming" Value="CharacterEllipsis" />
        </Style>
    </ListView.Resources>
    <ListView.View>
        <GridView>
           <GridViewColumn Width="90" Header="Title" DisplayMemberBinding="{Binding Title}" />
           <GridViewColumn Width="60" Header="Author" DisplayMemberBinding="{Binding Author}" />
        </GridView>
    </ListView.View>
</ListView>

ただし、これは少し扱いが難しいようで、私が知る限り、これをスタイルに設定することはできません。

そのため、スタイルで設定でき、明示的な s を必要としないGridViewColumn、 s ヘッダーとセルのTextTrimming モードを設定する別の方法を探しています。CellTemplate

ありがとう、

マーク

4

0 に答える 0