.net Core 3.1 は まだ早かったのかな…
.net Core 3.1 でシステムを作っているけど、かゆい所に手が届かないというかなんというか…
今回はDataGrid のお話
リソースデータから項目名を表示するのにやり方が2種類あります。
1.{DynamicResource XXXXXXXXXX}
2.{StaticResource XXXXXXXXXX}
1.のDynamicResource はリソースファイル内の値を変更したら画面に反映されます。
また、Windowのタイトルを表示する場合は、Dynamicじゃないとエラーが出ます。
(Title="{StaticResource XXXXXXXXXX}" にするとビルドエラーで実行できません)
ついでに起動時ちょっと早いらしい(必要な時にresource参照するから)
2.のStaticResource は リソースファイル内の値を変更しても画面に反映されません。
また、DataGridTextColumnタグのHeader (グリッドのヘッダタイトル) は static じゃないと表示されません。
ついでに起動時ちょっと遅いらしい(起動時にresource参照するから)
というわけで、全部統一させろよ!
一部はDynamic、一部はStatic って、処理共通化できないし、 改修や引き継いだ後の不具合の元だ!
メンテナンスがやりづら過ぎて話にならない…
ドキュメントファーストの日本企業(うちの会社だけ?)には合わないよなぁ…
アジャイルやコードファーストやってたのになぁ…
サンプルコード:
Windowのタイトル
resource宣言:
DataGridのヘッダタイトル表示
今回はDataGrid のお話
リソースデータから項目名を表示するのにやり方が2種類あります。
1.{DynamicResource XXXXXXXXXX}
2.{StaticResource XXXXXXXXXX}
1.のDynamicResource はリソースファイル内の値を変更したら画面に反映されます。
また、Windowのタイトルを表示する場合は、Dynamicじゃないとエラーが出ます。
(Title="{StaticResource XXXXXXXXXX}" にするとビルドエラーで実行できません)
ついでに起動時ちょっと早いらしい(必要な時にresource参照するから)
2.のStaticResource は リソースファイル内の値を変更しても画面に反映されません。
また、DataGridTextColumnタグのHeader (グリッドのヘッダタイトル) は static じゃないと表示されません。
ついでに起動時ちょっと遅いらしい(起動時にresource参照するから)
というわけで、全部統一させろよ!
一部はDynamic、一部はStatic って、処理共通化できないし、 改修や引き継いだ後の不具合の元だ!
メンテナンスがやりづら過ぎて話にならない…
ドキュメントファーストの日本企業(うちの会社だけ?)には合わないよなぁ…
アジャイルやコードファーストやってたのになぁ…
サンプルコード:
Windowのタイトル
mc:Ignorable="d" Title="{DynamicResource XXXX}" Height="600"
resource宣言:
<Window.Resources>
<ResourceDictionary Source="/Properties/MainWindow.xaml"/>
</Window.Resources>
DataGridのヘッダタイトル表示
<DataGrid.Columns>
<DataGridTextColumn Header="{StaticResource XXXX}" Width="50" Binding="{Binding Name}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
コメント
コメントを投稿