私はWPFのGridControlを持っています(それはDevExpressのものですが、それは実際にはポイントではありません)、私はStaticResource
に基づいてヘッダのスタイルを設定しようとしています。WPF設定スタイルStaticResource in ViewModel
は正常に動作します
<UserControl.Resources>
<Style x:Key="HeaderStyle" TargetType="dxg:HeaderContentControl">
<Setter Property="FontWeight" Value="Bold" />
</Style>
</UserControl.Resources>
<dxg:GridControl x:Name="MyParameters" ItemsSource="{Binding ParamRows}">
<dxg:GridColumn ColumnHeaderContentStyle="{StaticResource HeaderStyle}" x:Name="ParamName" FieldName="ParamName" Width="80" Header="Parameter" />
<dxg:GridColumn ColumnHeaderContentStyle="{StaticResource HeaderStyle}" x:Name="ParamValue" Binding="{Binding ParamValue}" Width="50" Header="Value" />
<!-- etc. -->
..andです。
しかし、ViewModelで列を動的に構築するので、実行時にプログラムでColumnHeaderContentStyle
を設定する必要があります。
だから、XAMLは...
<dxg:GridControl x:Name="Parameters" ItemsSource="{Binding ParamRows}" ColumnsSource="{Binding ParamColumns}">
<!-- no list of rows. -->
...とC#コードでを持っている...
ParamColumns.Add(new GridColumn
{
ColumnHeaderContentStyle = (Style)Application.Current.Resources["HeaderStyle"],
FieldName = "ParamName",
Width=80,
Header="Parameter"
});
ParamColumns.Add(new GridColumn
{
ColumnHeaderContentStyle = (Style)Application.Current.Resources["HeaderStyle"],
Binding = new Binding("ParamValue"),
Width=50,
Header="Value"
});
研究のビットがApplication.Current.Resources["HeaderStyle"]
を使用して私を指摘、しかし、それはnull
を返します。スタイルはヘッダーに適用されません。
私はここで間違っていますか?
を維持する、と私は、このデザインにコミットされた 'のFunc <オブジェクト、オブジェクト>にfindResource {取得します。セット; ViewModelは独自のコンテキストに関するFrameworkElementの知識にアクセスすることができますが、それ以上のことはありません。 –