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
ありがとう、
マーク