gpt4 book ai didi

c# - 是扩展绑定(bind)

转载 作者:太空宇宙 更新时间:2023-11-03 17:05:48 24 4
gpt4 key购买 nike

我对 XAML 和 WPF 很陌生,但我正在尝试以下操作。

我基于 groupDescription 使用 Expanders 构建了一个 ListView。哪个工作正常。现在我试图将 IsExpanded 属性绑定(bind)到一个项目,因为如果我在我的应用程序中切换选项卡,先前用户选择的展开和折叠的扩展器将被删除。这意味着所有 Expander 都会默认返回折叠状态,这非常烦人。

但是我真的不明白这应该如何工作。我可以只将 Expander 的 IsExpanded 属性绑定(bind)到相应类中的属性吗?如何区分不同的群体?

非常感谢

<ListView Name="Mails" local:FM.Register="{Binding}" local:FM.GetFocus="Loaded"
Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
ItemsSource="{Binding Path=MailsProxy.View}"
SelectionMode="Single" SelectedItem="{Binding Path=SelectedMail, Mode=TwoWay}"
local:SortList.BringIntoViewSelected="True" local:SortList.IsGridSortable="True"
ItemContainerStyle="{StaticResource InboxMailItem}"
View="{Binding Source={x:Static session:Session.Current}, Path=InboxView.View}">
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Margin" Value="0,0,0,5"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander Foreground="Black" BorderThickness="0,0,0,1" Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<DockPanel>
<TextBlock FontWeight="Bold" FontSize="14" Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=ListView}, Path=DataContext.GroupBy}"/>
<TextBlock FontWeight="Bold" FontSize="14">:</TextBlock>
<TextBlock FontSize="14" Text="{Binding Path=Name, Converter={StaticResource GroupHeaderConverter}}" Margin="5,0,0,0"/>
</DockPanel>
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</ListView.GroupStyle>
<ListView.Resources>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="DataContext" Value="{Binding Source={x:Static session:Session.Current}, Path=InboxView}"/>
</Style>
</ListView.Resources>
</ListView>

最佳答案

定义一些静态 bool 变量并为它们设置属性,当用户展开或折叠特定节点时,然后将相应的值分配给 bool 变量,即 isExpanded = Mails.Expanded 并且当您在页面渲染或中再次返回同一选项卡时页面加载检查静态变量的值并将相同的值分配给 Mails.Expanded = isExpanded 这将解决您的问题

关于c# - 是扩展绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21331660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com