首先,值得一提的是,我查看了其他類似的主題,他們幫助我獲得了這麼多,但我需要一點幫助才能完成終點線。WPF從DataTrigger更改圖像
我遇到的問題是,我不能讓我的DataTrigger顯示正確的圖像,當InPossesion布爾標誌設置爲false我將我的枚舉屬性設置爲IconImage2,這反過來應該改變數據網格中的圖像爲紅色圓圈,這不會發生。如果任何人都可以給我任何指點,說明我出錯的地方會很棒。
視圖模型枚舉
public enum IconEnum
{
IconImage1,
IconImage2
}
public IconEnum MyIconEnumProperty
{
get { return _myEnum; }
set
{
_myEnum = value;
RaisePropertyChanged("MyIconEnumProperty");
}
}
視圖模型方法加載訂單
private void LoadCloakroomOrders()
{
CloakroomOrderRepository repo = new CloakroomOrderRepository();
//Get All orders
var orders = repo.GetPublic();
foreach (var orderItem in orders)
{
Orders.Add(orderItem);
if (orderItem.InPossesion == false)
{
MyIconEnumProperty = IconEnum.IconImage2;
}
}
}
XAML
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Orders}"
SelectedItem="{Binding Path=SelectedCloakroomOrder}"
Margin="0,23,0,-0.5" Width="980" >
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Visibility="{Binding ShowIcon,
Converter={StaticResource BooleanToVisibilityConverter},
FallbackValue=hidden}" >
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source" Value="/Resources/Images/circle_green.png"/>
<Style.Triggers>
<DataTrigger Binding="{Binding MyIconEnumProperty}" Value="IconImage2">
<Setter Property="Source" Value="/Resources/Images/circle_red.png"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
謝謝!
請發佈一個問題,解釋您遇到的問題,您只需要發佈要求... – 2014-10-27 14:18:27
請勿爲視圖暴露'enum'。視圖模型可以使用enum(來自某些業務邏輯)的值,並將其轉換爲圖像源,您可以使用該圖像源來綁定視圖圖像。 – Sinatr 2014-10-27 14:51:56