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
[Erledigt]TreeViewItem IsSelected Binding an SubItems
Ahrimaan
myCSharp.de - Member



Dabei seit:
Beiträge: 363
Herkunft: Thorn

Themenstarter:

[Erledigt]TreeViewItem IsSelected Binding an SubItems

beantworten | zitieren | melden

Hallo zusammen,
ich habe ein treeView welches je nach Typ der Klasse ein anderes Template nutzt
<Window x:Class="MK.AgentWpf.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:local="clr-namespace:MK.AgentWpf.ViewModel"
        xmlns:model="clr-namespace:MK.AgentWpf.Model"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <local:MainWindowModel x:Key="vm"/>
    </Window.Resources>
    <!--LayoutBegin-->
    <Grid DataContext="{Binding Source={StaticResource vm}}">
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition Height="30"/>
        </Grid.RowDefinitions>
        <TreeView ItemsSource="{Binding Items}" SelectedItemChanged="TreeView_SelectedItemChanged">
            <TreeView.ItemContainerStyle>
                <Style TargetType="{x:Type TreeViewItem}" >
                    <Setter Property="IsSelected" Value="{Binding vm:Items.RootNode.SubNode.IsSelected}"/>
                    <Style.Triggers>
                        <Trigger Property="HasItems" Value="true">
                            <Setter Property="Focusable" Value="False"/>
                        </Trigger>
                       
                    </Style.Triggers>
                </Style>
            </TreeView.ItemContainerStyle>
            <TreeView.Resources>
                <HierarchicalDataTemplate DataType="{x:Type model:RootNode}"
                              ItemsSource="{Binding Path=SubNodes}">
                    <Grid>
                        <TextBlock Text="{Binding Text}" />
                    </Grid>
                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="{x:Type model:SubNodeItemWithCheckbox}">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="16"/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>
                        <CheckBox Grid.Column="0" IsChecked="{Binding IsSelected, Mode=TwoWay}" IsEnabled="{Binding IsEnabled}"/>
                        <TextBlock Text="{Binding Text}" Grid.Column="1"/>
                    </Grid>
                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="{x:Type model:SubNode}">
                        <TextBlock Text="{Binding Text}"/>
                </HierarchicalDataTemplate>
            </TreeView.Resources>
        </TreeView>


        <Button Grid.Row="1" Width="30" Command="{Binding OkCommand}">
            <Image Source="/Images/Sign001.ico"/>
        </Button>
    </Grid>
</Window>

Das Problem ist nur der Template vom Typ SubNode
 <HierarchicalDataTemplate DataType="{x:Type model:SubNode}">
                        <TextBlock Text="{Binding Text}"/>
                </HierarchicalDataTemplate>
Ich möchte, dass wenn ein Item Selektiert wird, es im Model gesetzt wird.
Ich habe es schon mit de, Trigger probiert
<Style TargetType="{x:Type TreeViewItem}" >
                    <Setter Property="IsSelected" Value="{Binding  Path=IsSelected}"/>
                    <Style.Triggers>
                        <Trigger Property="HasItems" Value="true">
                            <Setter Property="Focusable" Value="False"/>
                        </Trigger>
                       
                    </Style.Triggers>
Aber ich weiß nicht so recht wie ich das Binding machen soll. Das Property heißt IsSelected. Leider kann er nicht drauf zugreifen.
Sicher mache ich nur das Binding falsch oder ?
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Ahrimaan am .
private Nachricht | Beiträge des Benutzers
wackelkontakt
myCSharp.de - Member

Avatar #avatar-3290.jpg


Dabei seit:
Beiträge: 109
Herkunft: Dresden

beantworten | zitieren | melden

Hallo Ahrimaan,

kommen denn im Ausgabefenster irgendwelche Fehlermeldungen?
Um Rekursion zu verstehen, muss man erst mal Rekursion verstehen, muss man erst mal Rekursion verstehen, ....
private Nachricht | Beiträge des Benutzers
Ahrimaan
myCSharp.de - Member



Dabei seit:
Beiträge: 363
Herkunft: Thorn

Themenstarter:

beantworten | zitieren | melden

Hallo Wackelkontakt,
das Problem hat sich erledigt. Ich habe mich von der Warnung im XAML leiten lassen.
Wenn ich die Property einen Breakpoint setzte, klappt es , verrückt .....
private Nachricht | Beiträge des Benutzers