Autor Beitrag
alegria
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: Fr 28.05.10 13:10 
Hallo,

also ich möchte die Bezeichnung der category innerhalb meines propertyGrids dynamisch gestalten. Etwa durch Abfrage einer Resource. Klappt bei den einzelnen Properties auch wunderbar. Nur bei der Category gibts den Fehler:
Zitat:
Ein Attributargument muss ein constant-, typeof- oder Arrayerstellungsausdruck eines Attributparametertyps sein.


Mein (Beispiel)Code:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Resources;
using System.Threading;
using System.Globalization;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            myClass mc = new myClass();
            propertyGrid1.SelectedObject = mc;
        }

        public class myClass
        {
            private string countryName;
            
            // geht nicht...
            //[CategoryAttribute(new ResourceManager("WindowsFormsApplication2.Resource1", typeof(Resource1).Assembly).GetString("countryName"))]                     
            
            [CategoryAttribute("DirektTippenGeht")]
            public string CountryName
            {
                get { return new ResourceManager("WindowsFormsApplication2.Resource1"typeof(Resource1).Assembly).GetString("countryName"); ; }
                set { countryName = value; }
            }
        }
    }
}


Weiß jemand Rat???
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 28.05.10 14:14 
Über Umwege sollte das funktionieren: Du erstellst dir eine eigene Attribut-Klasse, über die du jeder Property einen konstanten String wie "WindowsFormsApplication2.Resource1" zuweist. Jetzt musst du zur Laufzeit diesen String auflösen: Du musst von PropertyTab ableiten und GetProperties(object, Attribute[]) überschreiben (siehe auch das Beispiel unter PropertyTab). Dort gibst du deine eigene PropertyDescriptor-Klasse zurück, bei der du endlich Category entsprechend überschreiben kannst. Dann musst du das PropertyTab nur noch dem Grid hinzufügen.

_________________
>λ=
alegria Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: Fr 28.05.10 15:49 
Puh! Also das werde ich wohl allein nicht hinbekommen...

Ne einfachere direktere Methode gibts da nicht? Bei den Properties selbst war es ja relativ einfach, warum ist dann die Description so verdammt kompliziert???

P.S. Bin aber wenigstens nicht der einzige der daran scheitert...
www.mycsharp.de/wbb2...d.php?postid=3603515
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 28.05.10 17:19 
user profile iconalegria hat folgendes geschrieben Zum zitierten Posting springen:
Bei den Properties selbst war es ja relativ einfach, warum ist dann die Description so verdammt kompliziert???
Weil das PropertyGrid einfach noch nie mehr als eine Behelfslösung war.

_________________
>λ=