に幅を調整するために(ウィンドウがリスト自体よりも小さい場合がある。この WPF GridViewのは、私は私のWPFアプリケーションでListViewコントロールを持っている利用可能なスペースのサイズ
、のように見える
<ListView Name="generatorsList" ItemsSource="{Binding GeneratorsList}" SelectionMode="Single">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Name}">
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Name">Name</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn Header="Type" DisplayMemberBinding="{Binding Type}" />
<GridViewColumn Header="Description" DisplayMemberBinding="{Binding Description}" />
<GridViewColumn Header="Actions" Width="60">
<GridViewColumn.CellTemplate>
<DataTemplate>
//buttons
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
スクロールバーが形成され、GridView
は同じままなので、アクションボタンは画面に表示されません(ユーザーはスクロールバーをドラッグする必要があります)。
Iは、リストビューがユーザーに表示されたときActions
列が常に表示されるように、初期化時に、現在のウィンドウ幅に基づいて、最大カラム幅を設定したいです。ユーザーが望んでいる場合はその
そして同じように、彼は手動で任意の列のサイズを変更することができます(そのため実際の「maxwidth
は」ただwidth
、設定されていません)。 私は*
で作業しようとしましたが、GridViewはその子を知らないので、*
はここでは働いていません。auto
は、列ごとに最大幅を設定できないため、また幅が一定でないと望ましくないため変数であるウィンドウサイズ(使用可能な領域サイズ)に依存します。コードの中に何らかのイベントが必要だと思っていますが、どのように適切な方法で処理すべきか分かりません。私はデータグリッド(私の意見では、この場合のためのより良い)にあなたのリストビューを変更した
<DataGrid Name="generatorsList"
ItemsSource="{Binding GeneratorsList}"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name"
Binding="{Binding Name}"
Width="*"/>
<DataGridTextColumn Header="Type"
Binding="{Binding Type}"/>
<DataGridTextColumn Header="Description"
Binding="{Binding Description}"
Width="2*"/>
<DataGridTemplateColumn Header="Actions"
Width="auto"
MinWidth="60">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<!--buttons-->
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
:
いつでもアクションを前面に配置することができます。この方法では、ウィンドウや列の幅に関係なく常に同じ場所に配置されます。 – cguedel
それは動作しますが、それはトリックです。リストは正面のアクションボタンでうまく見えません。 'Name'フィールドが長すぎる場合はどうしますか? – Erexo