如何在运行后检查用户控件上的所有复选框

How to check all check boxes on user control after runtime

我不知道这是否可行,但我正在制作一个系统,其中对于列表中的每个项目,它将解析信息并使用该信息进行用户控制。我想知道如何或是否应该为此使用用户控件。我不想使用数据网格(如果可能的话)。我的目标是找到一种方法,在运行后单击按钮即可启用所有复选框(每个用户控件一个)。可能知道如何在用户控件上也设置一个值也很酷。

this is a example of the user control

this is what the user controls look like after the while loop

关于如何解决这个问题,我的想法是列出所有用户控件,但我不知道如何找到复选框并选中它。

这是我创建用户控件的代码。


                   foreach (var user in get.users)
                    {                     
                        Users.Account account = new Users.Account(); //user control creator
                        account.name.Content = user.User.Username;   //set the content to the name
                        account.NUMBER = i;                          //Uid
                        this.account_list.Children.Add(account);     //crates a usercontrol in a stack panel
                        accounters.Add(account);                     //my idea on a List<UserControl>
                        i++;
                    }

任何帮助都会很棒,谢谢!

最好通过 ItemsControl 创建控件,而不是在代码隐藏中

xaml

    <Window.Resources>
    <ResourceDictionary>
        <DataTemplate x:Key="ItemTemplate">
            <CheckBox Content="{Binding Name}" IsChecked="{Binding IsChecked}"/>
        </DataTemplate>
    </ResourceDictionary>
</Window.Resources>
<Grid>
    <ItemsControl ItemsSource="{Binding Users}" ItemTemplate="{StaticResource ItemTemplate}"/>
</Grid>

视图模型

public class UserModel
{
    public string Name { get; set; }
    public bool IsChecked { get; set; }
}

public class WpfTestVm
{
    public ObservableCollection<UserModel> Users { get; } = new ObservableCollection<UserModel> {new UserModel { Name = "1"}, new UserModel { Name = "2" } };
}