C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: WPFでstyleでのDataGridの個別列サイズ変更


(過去ログ 132 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■78245 / inTopicNo.1)  WPFでstyleでのDataGridの個別列サイズ変更
  
□投稿者/ のりっち (4回)-(2015/12/29(Tue) 16:26:16)

分類:[.NET 全般] 

いつもお世話になっています。
WPFのstyleを使用してDataGridの個別列サイズ変更を使用と考えています。

XAMLですと下記のようにDataGrid.Columnsをタグで囲んで、DataGridTextColumn
からヘッダを指定して設定すればよいことはわかるのですが、
styleでの設定方法がわからず、困っております。
ご教授の程よろしくお願いします。

<DataGrid.Columns>
  <DataGridTextColumn Header="X" Width="70"/>
引用返信 編集キー/
■78246 / inTopicNo.2)  Re[1]: WPFでstyleでのDataGridの個別列サイズ変更
□投稿者/ Hongliang (388回)-(2015/12/29(Tue) 17:05:43)
Styleっていうのは、System.Windows.Styleクラスのことで間違いないでしょうか?
Width直接指定がXAMLの専権事項のように書かれているのがちょっと分かりません。
「このように書きたいがエラーが出る」という例を出していただけると理解が早くなるかと思いますが…。

DataGridColumnはDependencyObjectから直接派生しており、Styleプロパティは持っていません。
そのため当然DataGridColumn.WidthをStyleで設定することはできません。
Styleを使うことで何を狙っているのかを教えていただければ代替案を示せるかも知れません。
(まあStyleを使いたいって時点である程度目的は分かりますが)
引用返信 編集キー/
■78248 / inTopicNo.3)  Re[2]: WPFでstyleでのDataGridの個別列サイズ変更
□投稿者/ のりっち (5回)-(2015/12/29(Tue) 18:25:06)
No78246 (Hongliang さん) に返信
> Styleっていうのは、System.Windows.Styleクラスのことで間違いないでしょうか?
> Width直接指定がXAMLの専権事項のように書かれているのがちょっと分かりません。
> 「このように書きたいがエラーが出る」という例を出していただけると理解が早くなるかと思いますが…。
>
> DataGridColumnはDependencyObjectから直接派生しており、Styleプロパティは持っていません。
> そのため当然DataGridColumn.WidthをStyleで設定することはできません。
> Styleを使うことで何を狙っているのかを教えていただければ代替案を示せるかも知れません。
> (まあStyleを使いたいって時点である程度目的は分かりますが)
返信ありがとうございます。

> Styleっていうのは、System.Windows.Styleクラスのことで間違いないでしょうか?
おっしゃるとおりです。

> DataGridColumnはDependencyObjectから直接派生しており、Styleプロパティは持っていません。
> そのため当然DataGridColumn.WidthをStyleで設定することはできません。
下記のように記載するとDataGrid全体の列の大きさを変更できましたが、
個別の列変更は変更は不可ということですか?
<Setter Property="DataGrid.ColumnWidth" Value="100" />
> Styleを使うことで何を狙っているのかを教えていただければ代替案を示せるかも知れません。
DataGridの列幅や背景色の変更をしようと考えています。
Styleで難しい場合はXAMLでの設定も検討します。






引用返信 編集キー/
■78250 / inTopicNo.4)  Re[3]: WPFでstyleでのDataGridの個別列サイズ変更
□投稿者/ 81 (1回)-(2015/12/29(Tue) 19:21:48)
No78248 (のりっち さん) に返信

CellStyleのことかな? と思ったのですが

>Styleで難しい場合はXAMLでの設定も検討します。

という部分が気にかかります。

一応、イマイチな例です。(XAML)

        <DataGrid ItemsSource="{Binding col1}">
            <DataGrid.Resources>
                <Style TargetType="{x:Type DataGridCell}" x:Key="cell1">
                    <Setter Property="Width" Value="100"/>
                </Style>
                <Style TargetType="{x:Type DataGridCell}" x:Key="cell2">
                    <Setter Property="Width" Value="50"/>
                </Style>
            </DataGrid.Resources>
            <DataGrid.Columns>
                <DataGridTextColumn CellStyle="{StaticResource cell1}" Header="f1" Binding="{Binding f1}"/>
                <DataGridTextColumn CellStyle="{StaticResource cell2}" Header="f2" Binding="{Binding f2}"/>
            </DataGrid.Columns>
        </DataGrid>

引用返信 編集キー/
■78263 / inTopicNo.5)  Re[4]: WPFでstyleでのDataGridの個別列サイズ変更
□投稿者/ のりっち (6回)-(2016/01/01(Fri) 13:45:33)
No78250 (81 さん) に返信
> ■No78248 (のりっち さん) に返信
>
> CellStyleのことかな? と思ったのですが
>
> >Styleで難しい場合はXAMLでの設定も検討します。
>
> という部分が気にかかります。
>
> 一応、イマイチな例です。(XAML)
>
> <DataGrid ItemsSource="{Binding col1}">
> <DataGrid.Resources>
> <Style TargetType="{x:Type DataGridCell}" x:Key="cell1">
> <Setter Property="Width" Value="100"/>
> </Style>
> <Style TargetType="{x:Type DataGridCell}" x:Key="cell2">
> <Setter Property="Width" Value="50"/>
> </Style>
> </DataGrid.Resources>
> <DataGrid.Columns>
> <DataGridTextColumn CellStyle="{StaticResource cell1}" Header="f1" Binding="{Binding f1}"/>
> <DataGridTextColumn CellStyle="{StaticResource cell2}" Header="f2" Binding="{Binding f2}"/>
> </DataGrid.Columns>
> </DataGrid>
>
81さん
返信が遅れてしまいました。
例を提示いただきありがとうございます。
styleでの個別列指定は難しそうなので、提示いただいた例を参考に開発を進めようと思います。



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -