Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WPF中,如何检查每次勾选或写入某个内容时是否满足条件?_C#_Wpf - Fatal编程技术网

C# 在WPF中,如何检查每次勾选或写入某个内容时是否满足条件?

C# 在WPF中,如何检查每次勾选或写入某个内容时是否满足条件?,c#,wpf,C#,Wpf,基本上,我尝试了在大学制作一个益智游戏/解决额外学分的代码。但现在看来,我这样做的方式(因为缺乏其他方式)是缓慢的,而且绝对不被推荐 我想让它在每次勾选复选框或在文本框中输入内容时检查是否满足条件 //the conditions if ((txbName.Text == "Tim") && (txbFamName.Text == "Dams") && (txbLocation.Text == "AP") && (txbPassword.Te

基本上,我尝试了在大学制作一个益智游戏/解决额外学分的代码。但现在看来,我这样做的方式(因为缺乏其他方式)是缓慢的,而且绝对不被推荐

我想让它在每次勾选复选框或在文本框中输入内容时检查是否满足条件

//the conditions
if ((txbName.Text == "Tim") && (txbFamName.Text == "Dams") &&    (txbLocation.Text == "AP") && (txbPassword.Text == "C#") && (cbxThird.IsChecked == true) && (cbxA.IsChecked == true) && (cbxApple.IsChecked == true))
            MessageBox.Show("You solved the puzzle!");
这是我的XAML文件

这是我的密码


不要有几十个点击事件,尝试使用WPF的数据绑定。通过这种方式,您可以将复选框绑定到bool属性,并且实际上降低了代码和视图的复杂性,还有:单选按钮

<TextBox Name="txtbx1" Text="{Binding TextBoxPropertyName, UpdateSourceTrigger=PropertyChanged}" Width="150" />

你确实花了很多努力使你的复选框的行为完全像收音机按钮一样。我建议你让你的复选框重用它们的处理程序。例如,与cbxFirst_Checked不同,只需让所有人都使用一个OnCheckboxChecked处理程序。检查发送者对象以查看它是哪一个。将复选框放在数据结构中以简化此操作,并允许您使用循环来缩短代码。这样,当调用一个方法来检查条件时,代码重复就会少一些。@Jonesopolis我从来没有使用过单选按钮。不知道他们在做什么。@KhyadHalda抱歉。我两周前才开始c#2,这让我很困惑。你有这种视觉表现吗?@KhyadHalda我认为更好的方法是使用绑定。对于事件处理程序,只需在周围的网格或StackPanel上定义一个处理程序,然后让事件冒泡为您工作。那么,在这两个示例中,我应该把它放在哪里呢?我从未使用过数据绑定,我有点困惑也许这会有所帮助:很抱歉,我仍然不明白。像这样吗?
private string _textBoxPropertyName;
public string TextBoxPropertyName {
    /*your get and set logic here*/
    get{return _textBoxPropertyName;} 
    set{CheckForWinCondition(); _textBoxPropertyName = value;}
}