Laden...

Forenbeiträge von Floix Ingesamt 6 Beiträge

15.04.2010 - 08:09 Uhr

Also wenn ich dich richtig verstanden habe, hast du eine zweite Liste in dem du etwas anhand deines selektierten Items aus dem TreeView auswählen willst und diese Daten dann ausgeben, oder sehe ich das falsch?

Die zweite Liste mußt du über einen CollectionViewSource binden.

Hallo Taladan,

ja, fast richtig. Ich möchte anhand meines selektiertem Items aus dem TreeView, meinen zweiten ObjectDataProvider filtern. Die Liste ist an diesen ObjectDataProvider gebunden.

Über eine CollectionViewSource habe ich es bis jetzt in der Form nicht hinbekommen.

Ein kleiner "Hack" wäre:
Eine TextBox an den zweiten ObjectDataProvider zu binden (Parameter 0) und den Text der TextBox im PropertyChanged-Event des TreeView zu setzen.

Zufrieden bin ich damit allerdings nicht...

07.04.2010 - 10:55 Uhr

Hallo,

also bei XML ist es z.B. möglich mit XLinq. Dann kannst du deinem ObejctDataProvider direkt den Pfad zu deinem XML-File mitgeben...

 <ObjectDataProvider.MethodParameters>
            <system:String>../../your.xml</system:String>
 </ObjectDataProvider.MethodParameters>

Mit einer Textdatei wird es dann wahrscheinlich nicht möglich sein die Daten direkt anzuzeigen. Aber evtl. ist das der richtige Ansatz und du kannst die Aufbereitung dann in der "Get"-Methode deines ODP machen....

07.04.2010 - 10:44 Uhr

Hallo zusammen!

ich hoffe wirklich ihr könnt mir bei dieser Aufgabe weiterhelfen. Alleine komme ich an dieser Stelle nicht mehr weiter X(

Meiner GUI stelle ich die Daten über einen ObjectDataProvider (ODP) zur Verfügung.
(Dahinter steckt eine Klasse welche mir die gewünschten Objekte zurück liefert)
Der ObjectDataProvider bekommt über <ObjectDataProvider.MethodParameters> verschiedene Parameter mit um die Daten zu filtern.

Die Oberfläche besteht aus einem TreeView welches mit Hilfe eines Datatemplate / HierarchicalDataTemplate aus den Daten des ODP generiert wird.

Weiter gibt es ein paar Elemente welche über "Binding" an das .SelectedItem des Treeviews gebunden sind und verschiedene Properties meiner Objekte anzeigen.

Um die Daten zu filtern gibt es ein paar Text-/ und Checkboxen welche über Binding an den ODP gebunden sind und die Übergabeparameter liefern. Z.B.:


<Binding Source="{StaticResource MyODP}" Path="MethodParameters[0]"/>

So weit funktioniert alles Super und das ohne Codebehind...
Danke schonmal fürs lesen bis hier hin 😉

Ich möchte (in einer Listbox) weitere Daten anzeigen. Diese werden über einen zweiten ODP zur Verfügung gestellt.
Auch diese Daten sollen per Parameter gefiltert werden.

++Jetzt zu der Stelle, an der ich nicht weiter komme ++ X(

Die Daten die der zweite ODP liefert sind abhängig davon, was im Treemenü ausgewählt wurde. Das SelectedItem meines Treeviews soll also als Parameter für den zweiten ODP dienen.
Und das will mir einfach nicht gelingen.

Eine ODP über eine Text oder Checkbox zu filtern, ist ja relativ leicht. (siehe Beispiel oben). Aber wir kann ich das mit einem Treeview machen? Zumal das Element ja schon über Binding gefüllt wird...

Bei einer Checkbox z.B. würde ich den Content (<CheckBox.Content>) an den ersten ODP binden und das Checked (<CheckBox.IsChecked>) könnte als Filter für den zweiten ODP dienen...

Evtl. würde es auch schon reichen das ganze bei einem TextBlock zu schaffen, da dass TreeView im Datatemplate ein TextBlock verwendet:

<DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}"/>
          </StackPanel>
</DataTemplate>

Vielen, Vielen Danke im Voraus... !

15.07.2008 - 13:20 Uhr

Habe es mitlerweile hinbekommen.

Einfach über Select wie gewünscht Filtern.
Und dann die entsprechenden Datensätze aus dem zurückgegebene DataRow mit GetChildRows holen.

Eigentlich ganz easy. Aber auf diesen Weg muss man erstmal kommen 😉

14.07.2008 - 16:44 Uhr

Hi,

danke für die Antwort.

Wenn ich das ganze richtig verstanden habe, muss ich Tabelle B Filtern und dann per
GetParentRow() alle Ergebnisszeilen rausholen, in eine Datatable stecken und diese als DataSource verwenden??? wow

Ich will ja (erstmal) keine Daten aus Tabelle B haben. Nur Filtern.
Das ganze würde in SQL z.B. so aussehen:

SELECT 
TA.*
FROM
TabelleA TA, TabelleB TB
WHERE
TA.ID = TB.FK_TA
AND
TB.test = 1

Nur das ich beide Tabellen schon in einem DataSet stecken habe.

14.07.2008 - 14:39 Uhr

Hallo,

Ich habe ein DataSet in dem 2 Tabellen stecken. (Tabelle A und B)
Beide Tabellen habe ich (erfolgreich?) über Relations miteinander verbunden.

Tabelle A wird in einem GridView angezeigt

MeinGridView.DataSource = MeinDataSet.Tables["A"];

Ich zeige nur Tabelle A in dem GridView an. Hier kann ich wunderbar über:

MeinDataSet.Tables["A"].DefaultView.RowFilter = "xxx"

Datensätze herausfiltern.

Was aber wenn ich Kriterien die Tabelle B betreffen Filtern will ? Diese sollten dann (->Relations) auch aus Tabelle A verschwinden. So wie das in SQL ja möglich ist.

Danke für die Hilfe....

verwendetes Datenbanksystem: <ORACLE> (Spielt aber keine Rolle!)