gpt4 book ai didi

wpf - 无法将 Accordion SelectedIndex 绑定(bind)到 MVVM 整数属性

转载 作者:行者123 更新时间:2023-12-03 10:13:44 24 4
gpt4 key购买 nike

我的 ViewModel 需要知道在 View 中选择了哪个 AccordionItem。所以在 ViewModel 我有:

public class ServerListControlViewModel : ObservableObject
{
private int _accordion_index;
public int accordion_index
{
get { return _accordion_index; }
set
{
_accordion_index = value;
RaisePropertyChanged("accordion_index");
}
}
}

在 View 中,我有
<toolkitLayout:Accordion SelectedIndex="{Binding accordion_index}">
<toolkitLayout:AccordionItem items go here>
</toolkitLayout:Accordion>

问题? Accordion 执行精美的展开/折叠动画,但accordion_index 的 set 方法永远不会被调用。此外,我可以在 VM 的构造函数中将accorion_index 设置为某个值,并且在加载 View 时将调用 get 方法,并返回我的硬编码值,但 Accorion 会忽略它并始终默认为第一个展开的项目。为什么?我是 WPF 的新手,但相当肯定我已经正确绑定(bind)了它。

最佳答案

正如 vorrtext 指出的,您需要添加 Mode=TwoWay到你的绑定(bind)。 Accordion 派生自 ItemsControl 并添加了它自己的 SelectedIndex 属性。

对于 ListBox 或派生自 Selector 的任何控件,SelectedIndex 默认将双向绑定(bind)。他们这样做是因为他们在属性元数据中指定了 FrameworkPropertyMetadataOptions.BindsTwoWayByDefault。 Accordion 不这样做,因此您每次都必须手动进行。

关于wpf - 无法将 Accordion SelectedIndex 绑定(bind)到 MVVM 整数属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5502411/

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