Nur bestimmte Spalten im Silverlight-Datagrid anzeigen

orion555

Grünschnabel
Hallo,
ich habe mir die beiden Microsoft Videotutorials

"Wie kann ich mit WCF Data Services auf eine bestehende Datenbank zugreifen" und
"Wie kann ich WCF Data Services in einer Silverlight-Anwendung benutzen" angesehen und nach gemacht.
Hat super funktioniert. Konnte auf meine Datenbank und die darin enthaltene Tabelle "Gruppen" zugreifen.

Es wurden alle Spalten der Tabelle "Gruppen" im silverlight Datagrid angezeigt. Nun wollte ich aber das nur bestimmte Spalten der Tabelle angezeigt werden.
In SQL wäre das ein simples "select CustomerID, Ort, VName from Gruppen" Statemant. In Silverlight ist das leider nicht so einfach.
Habe unter folgendem Link ein Beispiel gefunden wie man das in silverlight machen kann.

http://msdn.microsoft.com/en-us/library/ff650917(VS.95).aspx

Habe das Beispiel auf meine Übung umgemünzt aber nicht mit dem Erfolg den ich mir erhofft habe.

Hier nun mein Quellcode. Wenn ich den so laufen lasse werden alle Spalten der Tabelle "Gruppen" angezeigt.
Wenn ich nun die Zeilen 1, 2 und 3 ausmarkiere und die ausmakierungen bei a, b und c weg nehme sollten eigentlich nur die
drei Spalten "CustomerID, Ort und VName im Datagrid angezeigt werden. Wenn ich den Code starte erscheint das Datagrid mit den drei
Spaltenüberschriften CustomerID, Ort und VName aber die Spalten bleiben leer (Keine Daten zu sehen).
In der Zeile c ist zu sehen das ich nur die CustomerID den Ort und VName haben will. Fuktioniert aber irgendwie nicht.

Code:
namespace Client
{
    public partial class MainPage : UserControl
    {
   a  //private DataServiceCollection<GruppenAddress> binding;
   1.   private DataServiceCollection<Gruppen> binding;
        CollectionViewSource cavs;
        nochmalEntities context;

        public MainPage()
        {
            InitializeComponent();
            this.Loaded += new RoutedEventHandler(MainPage_Loaded);
        }

        //nochmalEntities ctx = new nochmalEntities(new Uri("/NochmalService.svc", UriKind.Relative));
        void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
      b   //binding = new DataServiceCollection<GruppenAddress>();
      2.    binding = new DataServiceCollection<Gruppen>();
            context = new nochmalEntities(new Uri("/NochmalService.svc", UriKind.Relative));
            binding.LoadCompleted += new System.EventHandler<LoadCompletedEventArgs>(binding_LoadCompleted);
      c   //var query = (from p in context.Gruppen select new GruppenAddress { CustomerID = p.CustomerID, Ort = p.Ort, VName = p.VName });
      3.   var query = (from p in context.Gruppen select p);
            binding.LoadAsync(query);

        }

        void binding_LoadCompleted(object sender, LoadCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                if (binding.Continuation != null)
                {
                    binding.LoadNextPartialSetAsync();
                }
                else
                {
                    cavs = (CollectionViewSource)this.Resources["cavs"];
                    cavs.Source = binding;
                }

            }

        }
    }

So sieht meine GruppenAddress.cs aus.


Code:
namespace Client
{
    [DataServiceKey("CustomerID")]
    public partial class GruppenAddress
    {
        private string _customerID;

        private string _Ort;
        private string _VName;


        public string CustomerID
        {
            get
            {
                return this._customerID;
            }

            set
            {
                this._customerID = value;
            }
        }

        public string VName
        {
            get
            {
                return this._VName;
            }
            set
            {
                this._VName = value;
            }
        }


        public string Ort
        {
            get
            {
                return this._Ort;
            }
            set
            {
                this._Ort = value;
            }
        }

    }

    public class GruppenAddressNonEntity
    {
        private string _Ort;
        private string _VName;


        public string Ort
        {
            get
            {
                return this._Ort;
            }
            set
            {
                this._Ort = value;
            }
        }
        public string VName
        {
            get
            {
                return this._VName;
            }
            set
            {
                this._VName = value;
            }
        }
  
    }

}

Weis vielleicht jemand was ich falsch mache?

orion555
 
Zuletzt bearbeitet:
Hallo,

wies vieleicht jemand eine ander Lösung für mein Problem.
Ich will doch nur anstat eines "select * from Tabelle" ein
"select Spalte1, Spalte2 from Tabelle" ausführen.
Das kann doch nicht so schwer sein.

orion555
 
Zurück