基于变量在网格视图中显示图像

时间:2014-05-07 14:40:34

标签: c# wpf gridview

我的第一个问题是我的图像没有显示,代码如下;

<GridViewColumn Width="100" Header="Image">
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <Image Width="16" Height="16" Source="Images\green_tick.jpg"/>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

第二个是我不确定如何开始根据绑定{Binding ExtractionCompleted}

下的变量(bool)显示图像

感谢。

2 个答案:

答案 0 :(得分:2)

您可以通过DataTrigger

执行此操作
<GridViewColumn Width="100" Header="Image">
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <Image Width="16" Height="16" Source="Images\green_tick.jpg">
                <Image.Style>
                     <Style TargetType="{x:Type Image}">
                        <Setter Property="Visibility" Value="Visible" />
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding ExtractionCompleted}" Value="True">
                                 <Setter Property="Visibility" Value="Hidden" />
                            </DataTrigger>
                        </Style.Triggers>
                     </Style>
                </Image.Style>
            </Image>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

对于您的图片,请确保BuildAction设置为Resource。您可以通过检查它的属性来执行此操作。

答案 1 :(得分:-1)

试试这个。

XAML:

<DataTemplate x:Key="MyImageTemplate">
        <Image Source="{Binding Path=Value}" Height="20"></Image>
    </DataTemplate>

定义未绑定的列:

XAML:

<dxg:GridColumn FieldName="MyTempField" CellTemplate="{StaticResource MyImageTemplate}" UnboundType="Object" />

然后是GridControl.CustomUnboundColumnData事件的处理部分来设置一个值:

private void grid_CustomUnboundColumnData(object sender, GridColumnDataEventArgs e)
    {

        if (e.IsGetData)
        {
            if (((NewTestData)((GridControl)sender).GetRowByListIndex(e.ListSourceRowIndex)).Number1 > 10)
                e.Value = "demo.gif";
            else
                e.Value = null;
        }
    }