IBCBiomech / insolesibc

Prototipo de aplicación para plantillas
0 stars 1 forks source link

El selected no se actualiza #38

Closed bernatDiaz closed 1 year ago

bernatDiaz commented 1 year ago

No se esta actualizando la propiedad del modelo Paciente. Debe ser por la estructura del TreeView:

                <TreeView>
                    <TreeViewItem ItemsSource="{Binding Pacientes}">
                        <TreeViewItem.Header>
                            <TextBlock Text="Sujetos">
                                <TextBlock.ContextMenu>
                                    <ContextMenu>
                                        <MenuItem Header="Obtener" Command="{Binding obtenerPacientesCommand}"/>
                                        <MenuItem Header="Crear" Command="{Binding crearPacienteCommand}"/>
                                    </ContextMenu>
                                </TextBlock.ContextMenu>
                            </TextBlock>
                        </TreeViewItem.Header>
                        <TreeViewItem.ItemTemplate>
                            <DataTemplate DataType="{x:Type model:Paciente}">
                                <TreeViewItem Header="{Binding Nombre}" IsSelected="{Binding IsSelected, Mode=TwoWay}">
                                    <TreeViewItem Header="Pruebas">
                                        <TreeViewItem Header="Tests">
                                            <TreeViewItem.ItemsSource>
                                                <Binding Path="Tests" />
                                            </TreeViewItem.ItemsSource>
                                            <TreeViewItem.ItemTemplate>
                                                <DataTemplate DataType="{x:Type model:Test}">
                                                    <TreeViewItem Header="{Binding Nombre}">
                                                        <Grid>
                                                            <Grid.ColumnDefinitions>
                                                                <ColumnDefinition Width="150"/>
                                                                <ColumnDefinition Width="120"/>
                                                            </Grid.ColumnDefinitions>
                                                            <Grid.RowDefinitions>
                                                                <RowDefinition Height="auto"/>
                                                                <RowDefinition Height="auto"/>
                                                            </Grid.RowDefinitions>
                                                            <TextBlock Text="{Binding csv, Converter={StaticResource pathToFileNameConverter}}" Grid.Column="0" Grid.Row="0"/>
                                                            <TextBlock Text="{Binding Date}" Grid.Column="1" Grid.Row="0"/>
                                                            <TextBlock Text="{Binding video1, Converter={StaticResource pathToFileNameConverter}}" Visibility="{Binding video1, Converter={StaticResource nullToVisibilityConverter}}" Grid.Column="0" Grid.Row="1"/>
                                                            <TextBlock Text="{Binding Date}" Visibility="{Binding video1, Converter={StaticResource nullToVisibilityConverter}}" Grid.Column="1" Grid.Row="1"/>
                                                        </Grid>
                                                    </TreeViewItem>
                                                </DataTemplate>
                                            </TreeViewItem.ItemTemplate>
                                        </TreeViewItem>
                                        <TreeViewItem Header="Informes">

                                        </TreeViewItem>
                                    </TreeViewItem>
                                </TreeViewItem>
                            </DataTemplate>
                        </TreeViewItem.ItemTemplate>
                    </TreeViewItem>
                </TreeView>

Aqui la propiedad:

        private bool isSelected;
        public bool IsSelected { 
            get 
            {
                return isSelected;
            }
            set 
            { 
                isSelected = value;
                Trace.WriteLine("Is selected changed");
                OnPropertyChanged();
            } }

El trace no me salta

bernatDiaz commented 1 year ago

Solucionado he cambiado el codigo por este:

                        <TreeViewItem.ItemContainerStyle>
                            <Style TargetType="{x:Type TreeViewItem}">
                                <Setter Property="IsSelected" Value="{Binding IsSelected}" />
                            </Style>
                        </TreeViewItem.ItemContainerStyle>