2011-07-18 2 views
0

データグリッド列にアイコンを表示するデータテンプレートがあります。私はコードの後ろに画像ソースを設定しました。しかし、何らかの形で、イメージは実行時にグリッドに表示されません。私は何かが欠けていますか?コードビハインド内の設定画像がwpfデータグリッド列に表示されない

XAMLでDataGridのテンプレート列のセルテンプレートを設定する
var cellTemplate = (DataTemplate)Resources["iconTemplate"]; 
var image = cellTemplate.LoadContent() as Image; 

image.Source = new BitmapImage(new Uri(@"C:\images\16x16\image.png")); 
column.CellTemplate = cellTemplate; 

背後

<DataTemplate x:Key="iconTemplate">   
    <Image/> 
</DataTemplate> 

コード。

<DataGrid.Columns> 
    <DataGridTemplateColumn Header="Comments" CellTemplate="{StaticResource iconTemplate}"/> 
</DataGrid.Columns> 
+0

私はこれがStaticResourceのためだと思います... StaticResourceはフリーズ可能なオブジェクトです。すべての静的リソースはロード時または初期化時に解決され、実行時に加えられた変更は何も表示されません... DynamicResourcesで同じことを試みます。 – Bathineni

+0

何とかDynamicResourceを設定しても機能しません – John

答えて

1

LoadContentここで助けに行くのではありません。

は、オブジェクトのインスタンスとして、テンプレートの内容を読み込み、コンテンツのルート要素を返します。

戻り値

タイプ:System.Windows.DependencyObject
コンテンツのルート要素。これを複数回呼び出すと、別々のインスタンスが返されます。

さらに、DataTemplateは、一度使用されると封印されるので、変更することはできません。 DataTemplateをDynamicResourceとして参照し、実行時に古いテンプレートを完全に置き換えることができます。