我想根據枚舉值顯示不同的圖標/圖像。舉例來說,如果我有以下枚舉:如何僅使用XAML顯示不同的枚舉圖標?
public enum UploadStatus
{
Unknown = 0,
WaitingToUpload = 10,
Uploading = 20,
Uploaded = 30,
UploadFailed = 40
}
我想寫XAML看起來是這樣的:
...
<EnumImage Value="{Binding Path=CurrentStatus}">
<EnumImageItem Value="Unknown" Image="/images/unknown.png" />
<EnumImageItem Value="WaitingToUpload" Image="/images/clock.png" />
<EnumImageItem Value="Uploading" Image="/images/upload.png" />
<EnumImageItem Value="Uploaded" Image="/images/tick.png" />
<EnumImageItem Value="UploadFailed" Image="/images/error.png" />
</EnumImage>
...
我發現很多帖子提示定製IValueConverters,但這些解決方案不適合XAML範例。
任何指針或建議?
值轉換不符合「XAML範式」的方式? – AnthonyWJones 2010-05-07 11:20:34
嗯,我相信圖像路徑應該保留在XAML中,而不是C#代碼中。在我看來的IValueConverter解決方案中,轉換器負責將枚舉值映射到圖像路徑。我發現將所有這些保留在XAML中會帶來更多好處。 – 2010-05-07 11:41:04
正是出於這個原因,ValueConverter才存在。這是爲了獲取數據類型並轉換爲視圖。 – Stephan 2010-05-07 14:12:26