有幾種方法可以實現這一點。如果你正在使用MVVM(你可能應該是),那麼你可以在你的視圖模型上有一個字符串屬性,它根據整數的值返回適當的圖像路徑。然後,您可以將Image
控件的值Source
綁定到視圖中視圖模型上的屬性。
<Image Source="{Binding MyImagePathStringProperty}" Width="32" Height="32" />
或者,您也可以此整數屬性暴露給你的看法,並使用DataTrigger
設置在此基礎上整數值的圖像源。
<Image>
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="/Images/MyDefaultImage.png" />
<Style.Triggers>
<DataTrigger Binding="{Binding MyIntegerProperty}" Value="0">
<Setter Property="Source" Value="/Images/MyFirstImage.png"/>
</DataTrigger>
<DataTrigger Binding="{Binding MyIntegerProperty}" Value="1">
<Setter Property="Source" Value="/Images/MySecondImage.png"/>
</DataTrigger>
<DataTrigger Binding="{Binding MyIntegerProperty}" Value="2">
<Setter Property="Source" Value="/Images/MyThirdImage.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
你能告訴我這個「MyIntegerProperty」是怎麼樣的嗎?這個問題令我感到可怕... – mj2k2 2012-02-13 10:26:55
你使用MVVM嗎?即查看視圖模型的實例的數據上下文是什麼?在這種情況下,您的視圖模型將實現INotifyPropertyChanged,並且具有一個整數屬性(帶有getter和setter),並且在setter中,它將調用PropertyChanged事件。這告訴UI檢索新的整數值並更新綁定(在這種情況下,更新您的圖像)。在這裏閱讀有關MVVM的更多信息 - http://csharperimage.jeremylikness.com/2010/04/model-view-viewmodel-mvvm-explained.html – devdigital 2012-02-13 10:34:23
嘿,沒有我不使用MVVM。 我讀過很多文章,現在我想使用ObservableCollection,因爲他們得到了CollectionChanged - Event ...當我聲明ObservableCollection時,它看起來像這樣: ObservableCollection collection = new ObservableCollection (_ context.DatabaseEntity ); 之後,我設定的CollectionChanged事件是這樣的: collection.CollectionChanged + =新NotifyCollectionChangedEventHandler(collection_CollectionChanged) –
mj2k2
2012-02-17 12:44:23