如何动态创建文本框?

时间:2014-01-03 12:15:43

标签: c# xaml windows-phone-8

我只是想创建一个文本框,只有在满足某些条件时才会显示! 我想要的是,如果符合条件,则应出现文本框

如果不满足条件,则不应该看到它(不仅仅是将文本框的可见性改为折叠),即不应该有空位。

我该怎么做?

4 个答案:

答案 0 :(得分:1)

XAML为MVVM模式提供了丰富的数据绑定机制。你必须:

  1. INotifyPropertyChanged
  2. 中实施ViewModel
  3. PropertyChanged的setter中触发INotifyPropertyChanged事件ViewModel,其数据类型为TextBox可见性
  4. 在XAML中,bind this property发送到TextBox
  5. 然后,在某处更改此属性会自动导致更改TextBox状态

答案 1 :(得分:1)

在网格对象中添加一个文本框,如

    Grid grid=new Grid(){Height=60,Width=100};
    Textbox tBox=new Textbox(){Text="Sample",Visibility=Visibility.Collapsed};
    grid.Children.Add(tBox);

现在条件

if(Condition==true)
{
tBox.Visibility=Visibility.Visible;
}
else
{
tBox.Visibility=Visibility.Collapsed;
}

答案 2 :(得分:1)

我认为没有必要动态创建TextBox。您应该通过在xaml和TextBox Visibility中创建TextBox来管理它。当您在xaml中创建TextBox时,请记住Height应该是TextBox的默认值。 这是样本

<TextBox x:Name="txtVisible" Visibility="Collapsed"/>

 if(Condition==met)
   txtVisible.Visibility=Visibility.Visible;
 else
  txtVisible.Visibility=Visibility.Collapsed;

答案 3 :(得分:-1)

你可以使用我认为的面板。将一些东西放在面板下,放入面板,然后放上文本框。并且默认情况下使面板不可见。如果满足条件,您可以通过代码

使面板可见