Autor Beitrag
FrEEzE2046
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Windows 98, 2000, XP Pro, Vista Ultimate 32 & 64 Bit, Windows 7 Beta 64 Bit
C/C++, C# (VS 2008 TeamSystem) - Delphi (Delphi 5) - Java (Eclipse)
BeitragVerfasst: Fr 17.12.10 15:49 
Einen wunderschönen Freitag wünsche ich, ...

den ICH leider nicht habe ;) Ich bin kurz vorm verzweifeln. Ich hoffe jemand von euch hat schon mal eine ähnliche Anforderung gehabt und kann mir aus seiner Erfahrung berichten.

Folgendes Szenario:

Ich habe eine Page die - aufs Nötigste reduziert - folgendermaßen Aufgebaut ist:
ausblenden volle Höhe XML-Daten
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:
44:
45:
46:
<Grid>
  <Grid.ColumnDefinitions>
    <ColumnDefinition/>
    <ColumnDefinition/>
  </Grid.ColumnDefinitions>
  
  <toolkit:Accordion>
    <toolkit:AccordionItem Header="EntityA">
      <sdk:DataGrid ItemsSource="{Binding Data, ElementName=EntityADomainDataSource}" IsReadOnly="True">
        <sdk:DataGrid.Columns>
          <!-- column definitions -->
        </sdk:DataGrid.Columns>
      </sdk:DataGrid>
    </toolkit:AccordionItem>
    <toolkit:AccordionItem Header="EntityB">
      <sdk:DataGrid ItemsSource="{Binding Data, ElementName=EntityBDomainDataSource}" IsReadOnly="True">
        <sdk:DataGrid.Columns>
          <!-- column definitions -->
        </sdk:DataGrid.Columns>
      </sdk:DataGrid>
    </toolkit:AccordionItem>
  </toolkit:Accordion>
  
  <toolkit:DataForm ItemsSource="{Binding Data, ElementName=EntityBDomainDataSource}"
            CommandButtonsVisibility="All">
    <toolkit:DataForm.Resources>
      <Style x:Key="DataFormEntityAStyle" TargetType="toolkit:DataForm">
        <Setter Property="EditTemplate">
          <DataTemplate>
            <!-- Style for EntityA -->
          </DataTemplate>
        </Setter>
      </Style>
      <Style x:Key="DataFormEntityBStyle" TargetType="toolkit:DataForm">
        <Setter Property="EditTemplate">
          <DataTemplate>
            <!-- Style for EntityB -->
          </DataTemplate>
        </Setter>
      </Style>
    </toolkit:DataForm.Resources>    
  </toolkit:DataForm>
  
  <riaControls:DomainDataSource x:Name="EntityADomainDataSource" QueryName="GetEntityAQuery"/>
  <riaControls:DomainDataSource x:Name="EntityBDomainDataSource" QueryName="GetEntityBQuery"/>
</Grid>


Kurze Erklärung:
Im Accordion "wählt" man die zu bearbeitende Entität und kann dann im DataForm (dessen Style dynamisch im Hintergrund gesetzt wird) vorhandene Datensätze bearbeiten und löschen, sowie neue Datensätze hinzufügen ...
Besser gesagt: Man soll das können. Leider gelingt es mir nicht, dass DataForm korrekt einzusätzen. Es wird mir nie klar, inwieweit das DataForm selbstständig arbeitet verrichtet. Das Löschen eines Datensatzes scheint rein visuell zu geschehen, sprich es wird nicht an den DomainContext weitergegeben. Andererseits scheint beim hinzufügen, wesentlich mehr zu passieren. Die Bedeutungen von AutoEdit, AutoComplete, BeginEdit und CommitEdit sind mir auch nicht klar. Wann muss ich CommitEdit aufrufen bzw. was passiert in diesem Moment überhaupt. Das was ich unter "Committing" - in diesem Kontext - verstehe, ist es jedenfalls nicht.

Ich wäre wirklich jedem sehr dankbar, der mir hier weiterhelfen kann. Alle Beispiele die ich gefunden habe, greifen lediglich auf eigens für das Beispiel angelegte Listen zurück. Mir fehlt ein vollständiges Beispiel über die Verbindung von DataForm und DomainContext/DomainDataSource. Leider ist die "Dokumentation" des Toolkits minimalistisch ...

Vielen Dank vorab.