无法设置AccordionItem.IsSelected的值

时间:2011-01-13 00:37:45

标签: wpf accordion wpftoolkit expander

有没有办法设置一个WPF手风琴,所以它的所有项目都是默认折叠的,只有当我点击它应该展开的扩展器按钮时?

更新 根据模板,我意识到选择项目的是IsSelected的{​​{1}}属性,问题是,当我尝试设置此属性时(从按钮单击处理程序中的代码),我得到了关注AccordionItem

InvalidOperationException

堆栈跟踪:

Cannot modify the IsSelected property while item is locked.

1 个答案:

答案 0 :(得分:2)

您可以使用SelectedIndex控件本身的SelectedItemAccordion属性控制选择的项目。

您可以将不可见的AccordionItem作为第一项,以便最初将所有项目显示为已折叠:

<toolkit:AccordionItem Visibility="Collapsed"/>

要打开特定项目,请在SelectedIndex处理程序中设置Loaded属性。或者,如果您正在使用行为,则可以在XAML中完成所有操作:

<toolkit:Accordion>
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Loaded">
            <ei:ChangePropertyAction PropertyName="SelectedIndex" Value="2"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>

修改

“xmlns:i”命名空间引用System.Windows.Interactivity,它是WPF4的一部分。 “xmlns:ei”命名空间引用Microsoft.Expression.Interactions,它是:

的一部分

将引用添加到项目后,可以使用它来设置命名空间:

<Window ...
    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
    xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
    ...>