我试图弄清楚如何创建一个用户控件来充当togglebuttons的模态组。我不想去单选按钮路线,因为用户必须能够取消选择所有内容。我还需要列表来支持纵向和横向演示。
我希望在XAML中拥有一个看起来像这样的控件。
public class ValidationHelper
{
private static ErrorProvider errProvider = new ErrorProvider();
public static void ValidateFields(List<Control> controls)
{
errProvider.Clear();
foreach (Control c in controls)
{
errProvider.SetError(c, "");
if (string.IsNullOrWhiteSpace(c.Text))
{
errProvider.SetError(c, "Please fill the required field");
}
}
}
}
我认为网格可能不是正确的布局选项,因为我不知道我会有多少按钮。
答案 0 :(得分:0)
您可以根据以下示例代码处理路由Checked
事件。
<强> XAML:强>
<Grid ToggleButton.Checked="Grid_Checked">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ToggleButton Content="A" />
<ToggleButton Content="B" Grid.Column="1" />
<ToggleButton Content="C" Grid.Column="2" />
</Grid>
<强>代码:强>
private void Grid_Checked(object sender, RoutedEventArgs e)
{
Grid grid = sender as Grid;
ToggleButton toggledButton = e.OriginalSource as ToggleButton;
IEnumerable<ToggleButton> allToggleButtons = grid.Children.OfType<ToggleButton>();
foreach (ToggleButton toggleButton in allToggleButtons)
if (toggleButton != toggledButton)
toggleButton.IsChecked = false;
}
ToggleButton
中只能同时检查一个Grid
,但可以取消选中所有ToggleButtons
。