2016-04-18 16 views
-1

私は、リストビューの私のグループの説明のために列挙型を使用していると私はそれはいくつかのより多くのユーザーフレンドリーなテキストを表示しようとしていますが、私はエラーウィッヒがimpliciltyタイプ文字列がenum表示スペースとイメージを作成する方法はありますか?

列挙

public enum Mærke { 
Alfa_Romeo, 
Audi, 
Aston_Martin__________________________________________________________5x114, 
BMW, 
Chervolet, 
Chrysler, 
Citroën, 
Daewoo, 
Daihatsu, 
Dodge, 
Ferrari }; 
public Mærke mærke { get; set; } 
をMærkeに変換することができないと言う取得します

クラス

public class biler 
{ 
    public string billed { get; set; } 

    public string Model { get; set; } 

    public string Type { get; set; } 

    public string Årgang { get; set; } 

    public string Krydsmål { get; set; } 

    public double ET { get; set; } 

    public double centerhul { get; set; } 

    public string bolter { get; set; } 

    public string hjul { get; set; } 

    public Mærke mærke { get; set; } 



} 

一覧

items.Add(new biler() { billed = "img/Biler/aston martin.png", Model = "DB9", Årgang = "03-", Krydsmål = "5x114.3", ET = 62.5, centerhul = 68.1, bolter = "M14x2", mærke = Mærke.Aston_Martin__________________________________________________________________________________________________5x114 }); 
CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView (hjuldata.ItemsSource); 
PropertyGroupDescription groupDescription = new PropertyGroupDescription("mærke");   
view.GroupDescriptions.Add(groupDescription); 

how do i get a icon over here?

+2

正直言って:私は問題を理解していないと何を達成しようとしています。 – ckruczek

+0

他のすべてのものを除いて、 'Aston_Martin __________________________________________________________________________________________________ 5x114'は非常に良い名前ではないようです...特に列挙の中の唯一のAston Martinです。私はそれを 'Aston_Martin'と呼ぶか、2つの異なるAston Martinを区別する必要がある場合は、Aston_Martin_5x14を – SamYonnou

+0

とすると、グループの説明で表示したい別の車のために異なるボルトの円があるからです。 –

答えて

0

それが何であれば、これはそれを行う必要があります探していると画像のように私はヘッダーがそれをサポートしているとは思わない

using System.Reflection; 
public static class EnumExtensions 
{ 

    public static string DisplayName(this Enum value) 
    { 
     FieldInfo field = value.GetType().GetField(value.ToString()); 

     EnumDisplayNameAttribute attribute 
       = Attribute.GetCustomAttribute(field, typeof(EnumDisplayNameAttribute)) 
        as EnumDisplayNameAttribute; 

     return attribute == null ? value.ToString() : attribute.DisplayName; 
    } 
} 

public class EnumDisplayNameAttribute : Attribute 
{ 
    private string _displayName; 
    public string DisplayName 
    { 
     get { return _displayName; } 
     set { _displayName = value; } 
    } 
} 

public enum Mærke 
{ 
    [EnumDisplayName(DisplayName = "Alfa Romeo 5x114")] 
    Alfa_Romeo, 

public string mærke { get; set; } 
mærke = Mærke.Alfa_Romeo.DisplayName() 
1
var mærke = Merke.Alfa_Romeo; // example 
var withSpaces = mærke.ToString().Replace("_", " "); 

これはあなたのためにそれを解決する必要があります。

public static string WithSpaces(this enum theEnum){ 
    return theEnum.ToString().Replace("_", " "); 
} 

、その後、ちょうどあなたのコードであることを使用します:そこので、あなたがそのようなのような拡張メソッドを書くことができることを行うための組み込みのものは何もない

var mærke = Mærke.Alfa_Romeo.WithSpaces(); 
+0

エラー 'Mærke'に 'withspaces'の定義が含まれておらず、 'Mærke'タイプの最初の引数を受け入れる拡張メソッド 'withspaces'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありません) –

+0

はい、もちろん、それは存在しません、あなたは私があなたに示したように、拡張メソッドとしてそれを書く必要があります: –

+0

私はupdatet私の質問私は私がそれを置くときにエラーを取得して以来、 enum はクラス で、Mærke.Alfa_Romeo.WithSを使用していますアイテムリストのペース –

関連する問題