簡體   English   中英

WPF數據綁定和圖像

[英]WPF Data binding and Image

我有這個Xaml代碼

<ListView x:Name="listOrderList" Margin="58,55,0,0" Background="{x:Null}">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="DESCRIPTION" DisplayMemberBinding="{Binding Description}"/>
            <GridViewColumn Header="STATUS">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <Image Source="{Binding Status}"/>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

在C#中,我有一個Status的enum ,而且我顯然知道<Image Source="{Binding Status}"/>無法正常工作。 但是如何做某事,例如我在Status枚舉中有兩個值。 說“是”和“否”。我如何為枚舉的值分配小圖標,並輕松使用Bindings。

謝謝。

看看IValueConverter

這樣,您可以檢查綁定傳遞了哪個值,然后創建要顯示的Image對象。

您可以使用綁定轉換器,也可以將DataTriggers添加到DataTemplate中。 下面的示例假定以下枚舉

public enum Status { Status1, Status2 }

並根據Status屬性的值將Image的Source屬性設置為其他圖像資源。

<Window.Resources>
    <BitmapImage x:Key="Image1" UriSource="..."/>
    <BitmapImage x:Key="Image2" UriSource="..."/>
</Window.Resources>

...

<DataTemplate>
    <Image x:Name="image"/>
    <DataTemplate.Triggers>
        <DataTrigger Binding="{Binding Status}" Value="Status1">
            <Setter TargetName="image" Property="Source"
                    Value="{StaticResource Image1}"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding Status}" Value="Status2">
            <Setter TargetName="image" Property="Source"
                    Value="{StaticResource Image2}"/>
        </DataTrigger>
    </DataTemplate.Triggers>
</DataTemplate>

您可以將Icon圖像路徑設置為Enum,然后將DataGrid與該Enum綁定。

            <DataGridTemplateColumn x:Name="colStatus" Width="160" Header="Status">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                   <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" OverridesDefaultStyle="True" Width="135">
                                    <Image Height="14" Margin="2,0,0,0" HorizontalAlignment="Left" Source="{Binding Status}" Width="14" />
                                    </StackPanel>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM