トップ回答者
DataGridの変わりにListViewのGridViewを使ってはみたものの

質問
-
お世話になっております。
ご相談があり質問させて頂きます。
ListViewのGridViewで下記の事をやろうとしてみましたが色々調べてみましたがわかりませんでした。
・列幅を変更できないように固定する
・チェックボックスの列を作る
ご存知の方教えて頂ければ幸いです。
アプリケーションを開発してこられた方なら
たいていはDataGridViewをご利用になってきたかと思いますが
xamlではどうやらできないというか標準でないようで。
(一応はXceed DataGrid for WPFなるものがあるようですがちょっとこれの仕様に惑わされそうなので)
なので、ListViewのGridViewでいけるかと思い色々とやってみました。
まず、ヘッダーの色を変えるだけでもリソースに記述してから
それを呼び出すといった方法になるようですね。
http://msdn.microsoft.com/ja-jp/library/system.windows.controls.gridview.columnheadercontainerstyle(VS.80).aspx
特にめんどくさいことをやろうとしてわけではなく
表を出したいだけです。(チェックボックスはちょっとめんどくさい部類に入るかもしれないですが)
もっとそれぐらいならこんな方法もあるよといった方法をご存知の方
いらっしゃいましたら、そちらも教えて頂ければ幸いです。
回答
-
列幅の固定は以下の例があります。
ListView のカラムヘッダの幅を固定する
http://frog.raindrop.jp/knowledge/archives/002153.html
チェックボックスについては以下が参考になると思います。
方法 : CheckBox を持つ ListViewItem を作成する
http://msdn.microsoft.com/ja-jp/library/ms754143.aspx
参考までですが、ヘッダーの色を変更するには以下のようにしてもできます。各列それぞれ独立して背景色を変更できます。
<GridViewColumn DisplayMemberBinding="{Binding hoge}"> <GridViewColumnHeader Content="hogehoge" Background="Aqua" /> </GridViewColumn>
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/- 回答としてマーク 無限極限 2009年3月28日 0:29
-
ListView のカラムヘッダの幅を固定する
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="WpfApplication3.Window1" x:Name="Window" Title="Window1" Width="640" Height="480"> <Window.Resources> <Style x:Key="myHeaderStyle" TargetType="{x:Type GridViewColumnHeader}"> <Setter Property="IsEnabled" Value="false" /> </Style> </Window.Resources> <Grid x:Name="LayoutRoot"> <ListView Name="listView1"> <ListView.View> <GridView> <GridViewColumn Header="aaaaa" HeaderContainerStyle="{StaticResource myHeaderStyle}"/> <GridViewColumn Header="bbbbb"/> </GridView> </ListView.View> </ListView> </Grid> </Window>
GridViewのカラムヘッダーはグレー化しちゃいますが・・・
<ListView Name="listView1"> <ListView.View> <GridView> <GridViewColumn> <GridViewColumnHeader Content="aaaaa" IsEnabled="False"/> </GridViewColumn> <GridViewColumn Header="bbbbb"/> </GridView> </ListView.View> </ListView>
こっちでもいいですね。
えムナウ@わんくま同盟 Microsoft MVP Visual Studio C# Since 2005/01-2009/12- 回答としてマーク 無限極限 2009年3月28日 0:29
すべての返信
-
列幅の固定は以下の例があります。
ListView のカラムヘッダの幅を固定する
http://frog.raindrop.jp/knowledge/archives/002153.html
チェックボックスについては以下が参考になると思います。
方法 : CheckBox を持つ ListViewItem を作成する
http://msdn.microsoft.com/ja-jp/library/ms754143.aspx
参考までですが、ヘッダーの色を変更するには以下のようにしてもできます。各列それぞれ独立して背景色を変更できます。
<GridViewColumn DisplayMemberBinding="{Binding hoge}"> <GridViewColumnHeader Content="hogehoge" Background="Aqua" /> </GridViewColumn>
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/- 回答としてマーク 無限極限 2009年3月28日 0:29
-
ListView のカラムヘッダの幅を固定する
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="WpfApplication3.Window1" x:Name="Window" Title="Window1" Width="640" Height="480"> <Window.Resources> <Style x:Key="myHeaderStyle" TargetType="{x:Type GridViewColumnHeader}"> <Setter Property="IsEnabled" Value="false" /> </Style> </Window.Resources> <Grid x:Name="LayoutRoot"> <ListView Name="listView1"> <ListView.View> <GridView> <GridViewColumn Header="aaaaa" HeaderContainerStyle="{StaticResource myHeaderStyle}"/> <GridViewColumn Header="bbbbb"/> </GridView> </ListView.View> </ListView> </Grid> </Window>
GridViewのカラムヘッダーはグレー化しちゃいますが・・・
<ListView Name="listView1"> <ListView.View> <GridView> <GridViewColumn> <GridViewColumnHeader Content="aaaaa" IsEnabled="False"/> </GridViewColumn> <GridViewColumn Header="bbbbb"/> </GridView> </ListView.View> </ListView>
こっちでもいいですね。
えムナウ@わんくま同盟 Microsoft MVP Visual Studio C# Since 2005/01-2009/12- 回答としてマーク 無限極限 2009年3月28日 0:29