| 

.NET C# Java Javascript Exception

2
Ich habe hier zwar die "gleiche" Fragen schon mal aktiv (Odyssey und MVVM), aber ich denke diese ist zu speziell. Daher stelle ich meine Frage nochmal genereller und hoffe, dass mir jemand helfen kann.

Meine Outlookbar wird statisch auf folgende Weise in XAML definiert
<odyssey:OutlookBar Header="Outlook Bar" MaxNumberOfButtons="2" x:Name="bar" MaxWidth="300"
IsCloseButtonVisible="False" SelectedSectionIndex="0"
Margin="4,4,0,4" Grid.Row="0" DockPanel.Dock="Left" Width="200" IsButtonSplitterVisible="True" IsOverflowVisible="True"
IsPopupVisible="False" ShowSideButtons="True" ShowButtons="True" >
<!-- SelectedSectionChanged="bar_SelectedSectionChanged" -->

<odyssey:OutlookBar.Sections>

<odyssey:OutlookSection Header="Verwaltung">
<StackPanel>
<odyssey:OdcExpander Header="Benutzermanagement">
<StackPanel>
<odyssey:OdcButton>Benutzer</odyssey:OdcButton>
<odyssey:OdcButton>Benutzergruppen</odyssey:OdcButton>
</StackPanel>
</odyssey:OdcExpander>
<odyssey:OdcExpander Header="Anwendung">
<StackPanel>
<odyssey:OdcButton>Anwendungseinträge</odyssey:OdcButton>
<odyssey:OdcButton>Berechtigungen</odyssey:OdcButton>
</StackPanel>
</odyssey:OdcExpander>
</StackPanel>
</odyssey:OutlookSection>

</odyssey:OutlookBar.Sections>

</odyssey:OutlookBar>


Nun möchte ich nicht statisch das ganze eintragen, sondern eher dynamisch.

Was wäre der "richtige" Weg, wenn ich dabei MVVM berücksichtigen will?

Eine Idee die mir beim Googlen gekommen ist, ist die Verwendung von DataTemplates und/oder ItemsControls. Nur bei der Umsetzung hatte ich dann Schwierigkeiten, die Verschachtelung hinzubekommen.

Wäre nett, wenn mir daher jemand einen Tipp in der Richtung geben könnte
News:
20.02.2013
MyKey0815 1,6k 2 9
2 Antworten
1
Erst einmal hat Deine Frage nichts mit MVVM zu tun, sondern mit dem Prinzip des Bindings.
Dieses Prinzip bringt WPF von Haus aus mit.
Dein XAML Code würde dann in etwa so aussehen.
<odyssey:OdcButton Content="{Binding Path=User,Mode=OneWay}"/>

Die Property 'User' packt man in eine Klasse, die dann per DataContext im XAML Header oder in der CodeBehind Datei bindet.

MVVM selbst geht viel weiter.
Wenn wir von MVVM hier reden, reden wir meistens nicht nur von dem Architektur Pattern, um View und Logik von einander zu entkoppeln, sondern von dem MVVM Framework, das all die Helperklassen besitzt, um entkoppelte Anwendungen zu entwickeln.
Dies geht weit über das Prinzip des Bindings hinaus.
Welches MVVM Framework setzt Du im Moment ein oder willst Du einsetzen?

Ob Deine Odssey Controls Bindings richtig unterstützen, weiß ich aber nicht.

Ich selbst setze Telerik Controls ein, die optimal auf Bindings abgestimmt sind und selbst MVVM Frameworks wie PRISM unterstützen.
20.02.2013
judgy 3,0k 1 1 8
0
Also für alle weiteren, die ähnliches suchen oder probieren

Odyssey und Fluent unterstützen die ganze Sache nicht.

Bei Odyssey liegt es an einem Bug in der Implementierung und bei Fluent wird das dynamische Erzeugen überhaupt nicht auf MVVM-Basis möglich.

Bei Fluent gibt es zwar eine Workaround, der aber sehr Aufwendig ist und selbst implementiert werden muss - leider
22.02.2013
MyKey0815 1,6k 2 9

Stelle deine .net-Frage jetzt!