设置:
我有一个组合框,它的itemsource绑定到一个自定义类的ObservableCollection,其中一个属性是List。
我有一个itemscontrol,它被绑定到组合框的selected item List属性。
ItemsControl DataTemplate创建一个单选按钮列表,每个单选按钮表示列表中的各个枚举值。
欲望:
当我改变组合框中的值时,itemscontrol源被更新。我想发生的是,如果新itemscontrol源中的单选按钮与先前列表中选定的单选按钮相同(在更新之前),则将选中此选项。
当前想法:
为单选按钮分配一个Checked事件,它在窗口类中维护一个myenum属性,可以与之进行比较。将radiobox的IsChecked属性绑定到转换器,并与myenum属性进行比较。为了实现这一点,我使窗口类从IValueConverter扩展,这样转换器函数就可以访问myenum属性。
问题:
我不知道如何让IsChecked绑定使用窗口作为转换器。我已经尝试在绑定的转换器部分使用相对源代码,但这不起作用IsChecked="{Binding Converter={RelativeSource={RelativeSource Self}}}"
首选答案:
如果可能的话,帮助纠正绑定语法。
有更合适的方法来达到我的目的。
1条答案
按热度按时间ny6fqffe1#
我也不知道如何在XAML中使用窗口作为值转换器。而是创建一个独立的值转换器类,该类具有枚举类型的公共属性。接下来,在窗口的构造函数中,获取对值转换器示例的引用,并将其存储在私有成员中。
XAML:
代码隐藏: