[英]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。
謝謝。
這樣,您可以檢查綁定傳遞了哪個值,然后創建要顯示的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.