【发布时间】:2025-12-10 14:30:02
【问题描述】:
我在绑定到 MVVM / prism 应用程序中的数据库数据的项目控件和数据模板中有多个比率按钮。每组单选按钮相应地用一个名称分组,以便它们是单独的组。
我遇到的问题(并且违反了单选按钮的约定)是您可以在组中选择多个选项。并非所有选项都允许多选。有些人表现得像其他人不应该做的那样。通过 snoop 进行检查时,所有单选按钮都属于同一组,但有多个按钮向 IsChecked 报告 true。
有什么想法吗?
谢谢
编辑 - 代码
XAML
<StackPanel Grid.Column="0" Margin="10,0,0,10">
<TextBlock Margin="5,5,0,5"
FontSize="16"
FontWeight="Bold"
Foreground="{Binding Path=ThemeBackground}"
Text="From" />
<ItemsControl ItemsSource="{Binding Path=InternetItems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<RadioButton Margin="5"
Content="{Binding Path=Title}"
GroupName="InternetFrom"
IsChecked="{Binding Path=IsSelected}"
IsEnabled="{Binding Path=IsEnabled}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
查看模型
public ObservableCollection<Item> InternetItems
{
get
{
return
new ObservableCollection<Item>(
_items.Where(x => x.Category == Category.InternetFrom).OrderBy(x => x.DisplayOrder));
}
}
编辑 -
问题已解决。每次选择单选按钮时,背后的代码都会启动一个新的可观察集合,从而导致多个数据上下文,而不管单选按钮的组名是否相同
【问题讨论】:
-
贴出相关代码和XAML。
标签: wpf mvvm radio-button