如何显示网格中的特定文本框并隐藏所有其他文本框?

我目前正在开发 C# WPF 应用程序。我有一个网格,网格中有近 10 个文本框,根据客户的要求,我必须向他展示文本框。我当前正在从文件中读取一个变量,假设 4 并向他显示 10 个文本框中的 4 个文本框,或者如果我在文本文件中写入 5 个文本框,我的代码应该向他显示 10 个文本框中的 5 个文本框。我怎样才能在我的代码中实现这种现象



慕斯王
浏览 79回答 1
1回答

牧羊人nacy

如果您的文本框都共享一个公共父容器(即网格),那么迭代它们就非常容易。XAML 可能看起来像这样:<Grid Name="textBoxContainer">&nbsp; &nbsp; <!-- row, column definitions omitted -->&nbsp; &nbsp; <TextBox />&nbsp; &nbsp; <TextBox />&nbsp; &nbsp; <TextBox />&nbsp; &nbsp; <!-- etc... --></Grid>...然后在代码隐藏文件中,您需要像这样迭代这些文本框:int showBoxCount = 4; // this number gets loaded from your file elsewhereforeach (var textBox in textBoxContainer.Children.OfType<TextBox>()) {&nbsp; &nbsp; if (showBoxCount > 0)&nbsp; &nbsp; &nbsp; &nbsp; textBox.Visibility = Visibility.Visible;&nbsp; &nbsp; else&nbsp; &nbsp; &nbsp; &nbsp; textBox.Visibility = Visibility.Collapsed;&nbsp; &nbsp; showBoxCount--;}如果文本框不共享公共父容器,那么您需要为每个文本框指定一个名称,然后在代码隐藏文件中手动将它们放入数组中。XAML:<TextBox Name="txt1" /><TextBox Name="txt2" /><TextBox Name="txt3" /><!-- etc... -->隐藏代码:var textBoxes = new TextBox[] { txt1, txt2, txt3, etc... };int showBoxCount = 4; // this number gets loaded from your file elsewhereforeach (var textBox in textBoxes) {&nbsp; &nbsp; if (showBoxCount > 0)&nbsp; &nbsp; &nbsp; &nbsp; textBox.Visibility = Visibility.Visible;&nbsp; &nbsp; else&nbsp; &nbsp; &nbsp; &nbsp; textBox.Visibility = Visibility.Collapsed;&nbsp; &nbsp; showBoxCount--;}
打开App,查看更多内容
随时随地看视频慕课网APP