Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
MVVM + ScrollViewer
userid4106
myCSharp.de - Member



Dabei seit:
Beiträge: 457

Themenstarter:

MVVM + ScrollViewer

beantworten | zitieren | melden

Hallo,

ich habe einen ScrollViewer der, abhängig welcher Button gedrückt wird, einen unterschiedlichen Content hat. Bei dem Content handelt es sich immer um WrapPanels.

Hier mal das Model für die WrapPanels usw.


using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Windows.Controls;

namespace TYM_NET.Bereiche.TYM.Model
{
    internal class Controls_Model : INotifyPropertyChanged
    {
        private ObservableCollection<Button> buttons;
        public  ObservableCollection<Button> Buttons
        {
            get { return buttons; }
            set
            {
                buttons = value;
                OnPropertyChanged("Buttons");
            }
        }

        private WrapPanel panel;
        public  WrapPanel Panel
        {
            get { return panel; }
            set
            {
                panel = value;
                OnPropertyChanged("Panels");
            }
        }
        
        //private ObservableCollection<Parkplatz_Button_Style> plätze_Normal;
        public  ObservableCollection<Parkplatz_Button_Style> Plätze_Normal { get; set; }

        //private ObservableCollection<Parkplatz_Button_Style> plätze_Quer;
        public  ObservableCollection<Parkplatz_Button_Style> Plätze_Quer { get; set; }

        //private ObservableCollection<WrapPanel> panels;
        public  ObservableCollection<WrapPanel> Panels { get; set; }


        #region INotifyPropertyChanged Members
        public event PropertyChangedEventHandler PropertyChanged;

        private void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
        #endregion  
    }
}

In dem ViewModel befülle ich dann das Model und im xaml habe ich ein Binding:

        <Grid.DataContext>
            <local:TYM_ViewModel />
        </Grid.DataContext>
        <ItemsControl x:Name="Reiter_Plätze" DataContext="{Binding Path=Controls}" ItemsSource="{Binding Path=Buttons}" ItemTemplate="{StaticResource Reiter_PlätzeDataTemplate}" Margin="0,0,216,0" Height="40" VerticalAlignment="Top" Background="#56141414" >
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <VirtualizingStackPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
        </ItemsControl>

        <ScrollViewer x:Name="ScrollBar_Yards" DataContext="{Binding Path=Controls}" Content="{Binding Path=Panel}" Margin="0,44,216,0" Height="617" Background="#56141414" Template="{DynamicResource ScrollViewerControlTemplate1}" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden" Width="856" PreviewMouseMove="ScrollBar_Yards_PreviewMouseMove" PreviewMouseDown="ScrollBar_Yards_PreviewMouseDown" />


Mein Problem ist jetzt, dass in dem ScrollViewer nichts angezeigt wird:-( Mit den Buttons allerdings klappt es.
Zur Info: Dieses Panel kommt ursprünglich aus der ObservableCollection Panels.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von userid4106 am .
private Nachricht | Beiträge des Benutzers
userid14268
myCSharp.de - Member



Dabei seit:
Beiträge: 1.578

beantworten | zitieren | melden

WTF??

Was haben die View Controls im C# Code verloren? und zudem in einem "Model" der dann von nem ViewModel gefüllt wird?

Du hast MVVM komplett falsch umgesetzt.

6 Setzen.
private Nachricht | Beiträge des Benutzers
userid4106
myCSharp.de - Member



Dabei seit:
Beiträge: 457

Themenstarter:

beantworten | zitieren | melden

Eigentlich bin ich gerade dabei auf MVVM umzubauen:-P
Problem ist, dass ich die Controls zur Laufzeit generiere. Die Informationen usw. dazu kommen aus einer Datenbank. Deswegen hab ich die Dinger im Code ausgelagert, nicht gut^^?
private Nachricht | Beiträge des Benutzers