嗨,大家好,我在C#WPF一個項目,我需要在ListView 顯示客戶端的狀態,因此,我有以下枚舉定義了客戶端狀態WPF列表視圖中添加圖片到ListViewItem的在運行時
//Values used here for Bitwise Operations
public enum ClientStatus
{
NONE = 0,
NEWCLIENT = 1,
MONITORED = 2,
IMPORTAND = 4,
DISATISFIED = 8,
DETERIORATING = 16,
SATISFIED = 32
};
轉換每到一個特定的刷,我有以下的代碼,測試和它的工作原理
[ValueConversion(typeof(Enums.ClientStatus), typeof(Brush))]
public class StateValueColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
Brush Brush = Brushes.Red;
if (value is Enums.ClientStatus)
{
Enums.ClientStatus sv = (Enums.ClientStatus)value;
switch (sv)
{
case Enums.ClientStatus.IMPORTAND:
Brush = Brushes.Blue;
break;
case Enums.ClientStatus.MONITORED:
Brush = Brushes.Purple;
break;
case Enums.ClientStatus.NEWCLIENT:
Brush = Brushes.Orange;
break;
case Enums.ClientStatus.SATISFIED:
Brush = Brushes.Green;
break;
case Enums.ClientStatus.DETERIORATING:
Brush = Brushes.Yellow;
break;
case Enums.ClientStatus.DISATISFIED:
Brush = Brushes.Red;
break;
}
}
return Brush;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
做綁定我做了以下,這是不是我們的講師究竟想
<GridViewColumn Header="Status" Width="110">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBox Width="50" Background="{Binding Path=Status, Converter={StaticResource ColorConverter}}"></TextBox>
<TextBox Width="50" Background="{Binding Path=SatisFactory, Converter={StaticResource ColorConverter}}"></TextBox>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
我們需要顯示每個枚舉作爲不同顏色但客戶可以有多個狀態,即
var status = ClientStatus.NEWCLIENT | ClientStatus.SATISFIED;
現在,這將返回33
我的問題的一個int值現在是我在我的客戶端中使用了兩個屬性來顯示不正確的狀態,我們需要使用按位操作即。
if ((status & ClientStatus.NEWCLIENT) == ClientStatus.NEWCLIENT)
{
//do whatever
}
所以我可以做上面的代碼,但我將如何做的一個屬性綁定,顯示多種顏色的在一個gridviewcollumn,我搜索了論壇,但我錯過了,如果這個問題或類似的東西在那裏
我真的不知道如何陳述的問題,所以我會嘗試換句話說
我要顯示在列中的所有選擇枚舉。
感謝任何幫助或建議 希望我做SENCE
謝謝你,我理解這個方法,我去了試試這一個,會帶出一個結果:d – 2013-03-13 04:16:54
我這樣做了,它工作了我,很多 – 2013-03-16 14:10:21