Entwickler-Ecke

WPF / Silverlight - Gruppierung in StackPanel /Listbox


csharpuser1 - Mi 23.11.16 18:13
Titel: Gruppierung in StackPanel /Listbox
Guten Tag,

ich habe Stackpanels in einer Listbox.

Etwa so:

Textbox1 Checkbox1 Combobox1
Texbox2 Checkbox2 Combobox2
..

Ist es möglich, dass ich immer nur die Selected Zeile in meiner Listbox aktiviert habe und die restlichen deaktiviert sind?

Grüße


Delete - Mi 23.11.16 22:05

- Nachträglich durch die Entwickler-Ecke gelöscht -


csharpuser1 - Do 24.11.16 09:53

Guten Tag,

was wäre das denn für ein Usercontrol, welches andere controls beherbergen kann und die ereignisse bereitstellt?:b


csharpuser1 - Do 24.11.16 10:03

anders gefragt:

Es würde mir reichen wenn ich die Eigenschaft isEnabled des StackPanels in der Listbox im Code verändern könnte. Sprich: Ich selektiere ein Item in der Listbox, dan soll genau das Stackpanel isEnabled = true bekommen, welches sich in der Zeile befindet.



XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
<ListBox ItemsSource="{Binding TimerUnits}" Margin="10,38,118,10" x:Name="listbox" SelectionMode="Single" SelectionChanged="listbox_SelectionChanged">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal" IsEnabled=" {Binding IsSelected}">
                        <TextBlock Text="{Binding Path=Item.Name}" Width="60"/>
                        <CheckBox x:Name="isDefault" IsChecked="{Binding IsDefault}" IsEnabled="{Binding IsEnabled}" Width="50" Checked="CheckBoxDefault_Checked" Unchecked="CheckBoxDefault_UnChecked"/>
                        <CheckBox x:Name="isMaster"  IsChecked="{Binding IsMaster}" IsEnabled="{Binding IsEnabled}" Width="45" Checked="CheckBoxMaster_Checked" Unchecked="CheckBoxMaster_UnChecked"/>
                        <TextBox x:Name="TextBox_Master_Channel" Text="{Binding IsTextMasterChannel}" Width="60" IsEnabled="{Binding IsEnabledMaster}"/>
                        <TextBox x:Name="Textbox_Channel" Text="{Binding IsTextChannel}" Width="60" IsEnabled="{Binding IsEnabled}"/>
                        <ComboBox x:Name="ComboBox_Test" ItemsSource="{Binding Path=Item.Clocks}" IsEnabled="{Binding IsEnabled}" Width="50"/>
                        <TextBox x:Name="Textbox_Frequenz" Text="{Binding IsTextFrequenz}" Width="60" IsEnabled="{Binding IsEnabled}"/>
                        <Slider x:Name="mySlider" Width="75" Minimum="0" Maximum="100" IsSnapToTickEnabled="True" IsEnabled="{Binding IsEnabledMaster}"/>
                        <TextBox x:Name="Textbox_Slider" TextWrapping="NoWrap" Width="25" Text="{Binding ElementName=mySlider,Path=Value}" IsEnabled="{Binding IsEnabledMaster}"/>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>



Vielleicht ist eine Listbox auch das ganz falsche Element, ich brauche ja im Prinzip eine Art Tabelle, kann man nicht irgendwie eine Tabelle machen, die dynamisch gefüllt wird mit Checkboxen Slidern und Comboboxen drin, bei der einzelne Zellen deaktiviert werden können?


Th69 - Do 24.11.16 12:14

Für eine Tabellenansicht benutze ein ListView, s. ListView with a GridView [http://www.wpf-tutorial.com/listview-control/listview-with-gridview/].

Generell ist die Seite WPF Tutorial [http://www.wpf-tutorial.com/] eine gute erste Anlaufstelle, um sich über WPF und deren Controls zu informieren.


Delete - Do 24.11.16 14:04

- Nachträglich durch die Entwickler-Ecke gelöscht -


jfheins - Fr 25.11.16 00:57

Falls du noch das Projekt mit der Listbox und dem DataTemplate hast: Ich glaube, du kannst der Listbox für das selektierte Item ein eigenes Template mitgeben.

Ich habe es vor 2 Jahren irgendwie hinbekommen, dass das Listitem anders aussah, wenn es selektiert ist. Ich glaube aber mittlerweile, wenn du so viel Komplexität unterbringen möchtest ist ein UserControl das Beste.

Dem UserControl kannst du dann z.. eine Selected oder Enabled-Eigenschaft geben. Deine Listbox bekommt dann als ItemTemplate im Grunde nur noch das UserControl. Ich bin zwar ein Fan davon, möglichst viel in XAML zu machen, aber alles muss auch nicht sein...


csharpuser1 - Fr 25.11.16 16:24

Danke schonmal für die Antworten, ich bin das Wochenende über im Urlaub und ich werde es mir am Montag anschauen und mich damit beschäftigen!


csharpuser1 - Di 29.11.16 17:57

Habt mir sehr weitergeholfen danke! Hab es mit dem Ansatz hinbekommen.