0

WPFアプリにデータグリッドがあり、列にデータが欠落していることを示すために、いくつかの列に赤信号アイコンを表示したいと思います。これはXAMLのウィンドウリソースです。

<DataTemplate x:Key="RedTemp">
    <Image Source="/MyApp;component/Images/red.png"
           Height="9"
           Width="9"
           HorizontalAlignment="Right" />
</DataTemplate>

これが私がコードビハインドからそれを呼び出す方法です:

foreach (DataGridColumn y in grid.Columns)
{
    if (Missing== 1)
    {
        y.HeaderTemplate = FindResource("RedTemp") as DataTemplate;
    }              
}

しかし、アプリを実行すると、データグリッドの列に赤いライトが表示されますが、列ヘッダーテキストが消えます。

この問題を解決する方法はありますか?

4

1 に答える 1

1

DataTemplateを変更して、次のようなテキストを含むTextBlockを作成する必要があります。

<DataTemplate x:Key="RedTemp">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <TextBlock Text="{TemplateBinding Content}"  />
        <Image Source="/MyApp;component/Images/red.png"
               Height="9"
               Width="9"
               HorizontalAlignment="Right"
               Grid.Column="1"
               />
     </Grid>
</DataTemplate>

私はこれをテストしていません。

編集: 2つのUI要素の周りにパネルを追加しました。

于 2012-12-28T04:00:37.177 に答える