开发者

WPF: How to select parent listbox if user clicked on child listbox

开发者 https://www.devze.com 2022-12-20 04:47 出处:网络
In my application using DataTemplate mechanism I insert into ListBox item another listbox. But is it possible that when selected one listboxitem in parent listbox, the focus may be on another parent l

In my application using DataTemplate mechanism I insert into ListBox item another listbox. But is it possible that when selected one listboxitem in parent listbox, the focus may be on another parent listboxitem's child (see picture)

WPF: How to select parent listbox if user clicked on child listbox

How to do: if one of child listbox in focus (one item from them selected), then parent listboxitem being selecte开发者_运维百科d to? Using binding or templating

<DataTemplate x:Key="NotesListBoxDataTemplate" DataType="Note">
    <StackPanel Orientation="Vertical">

        <StackPanel Orientation="Horizontal">
            <TextBox Text="{Binding Path=Title, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"></TextBox>
            <my:DatePicker Height="25" Name="datePicker1" Width="115" xmlns:my="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit" 
                           SelectedDate="{Binding LastEdit,
                                                  Mode = TwoWay}" />
        </StackPanel>
        <TextBox Text="{Binding Path=Content, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"></TextBox>

        <StackPanel Orientation="Horizontal">
            <ListBox Name="ImagesListBox"  SelectedIndex="{Binding Mode=OneWayToSource, Source={StaticResource progParameters}, Path=SelectedImage, UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding Path=Images}" ItemTemplate="{StaticResource NotesListBoxImagesTemplate}" Style="{StaticResource HorizontalListBox}">
            </ListBox>
            <StackPanel Orientation="Vertical">
                <Button Name="AddImageButon" Content="+" Click="AddImageButon_Click"></Button>
                <Button Name="RemoveImageButon" Content="-" Click="RemoveImageButon_Click"></Button>
            </StackPanel>

        </StackPanel>

    </StackPanel>
</DataTemplate>


On the parent ListBox set property IsSynchronizedWithCurrentItem to true, then in the inner ListBoxes set the SelectedItem property to "{Binding SelectedItem ElementName=lbParent}".

Consider using a Converter to help you get specific data that is not accessible thru xaml or if you need to do some caculations.

Hope this helps.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号