Хотите заполнить <StackPanel>кнопками ToggleButton, заполненными из словаря - PullRequest
0 голосов
/ 23 марта 2020

Я немного новичок в MVVM, и должен сказать, что это нелегко ... Как говорится в топи c, я хочу заполнить StackPanel кнопками ToggleButtons, заполненными из словаря. Может кто-нибудь направить меня в правильном направлении?

Привет Fonz ie

 public class Soort
    {
        public int ID;            
        public Boolean Pressed;
        public string shortTitle;
        public string Title;
        public SolidColorBrush BorderColor;            
        public SolidColorBrush BackgroundColor;
        public int DefaultTime;           
    }

    public static Dictionary<int, Soort> dSoorten = new Dictionary<int, Soort>();

1 Ответ

1 голос
/ 24 марта 2020

Вам, вероятно, понадобится сначала ViewModel:

public class Soort
{
    public int ID;            
    public Boolean Pressed {get;set;} //Must be read/write a property to enable two way binding
    public string shortTitle;
    public string Title {get;}
    public SolidColorBrush BorderColor;            
    public SolidColorBrush BackgroundColor;
    public int DefaultTime;           
}

public class SoortsViewModel
{
     public Dictionary<int, Soort> Soorts {get;}
}

Затем свяжите его с представлением ItemsControl:

<ItemsControl Source="{Binding Soorts.Values}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <ToggleButton Checked="{Binding IsPressed, Mode=TwoWay}" Content="{Binding Title}"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
...