Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.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# 如何动态创建文本框?_C#_Xaml_Windows Phone 8 - Fatal编程技术网

C# 如何动态创建文本框?

C# 如何动态创建文本框?,c#,xaml,windows-phone-8,C#,Xaml,Windows Phone 8,我只想创建一个文本框,它只在满足某些条件时出现! 我想要的是,如果满足条件,则应显示文本框 如果不满足这些条件,那么它就不应该是可见的(不仅仅是将文本框的可见性更改为折叠),也就是说,不应该有一个空的地方 如何做到这一点???XAML为MVVM模式提供了丰富的数据绑定机制。你必须: 在ViewModel 在数据类型为TextBox的情况下,在ViewModel的setter中创建一个属性,该属性的PropertyChanged事件为INotifyPropertyChanged 在XAML中,指向

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

如果不满足这些条件,那么它就不应该是可见的(不仅仅是将文本框的可见性更改为折叠),也就是说,不应该有一个空的地方


如何做到这一点???

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

  • ViewModel
  • 在数据类型为
    TextBox
    的情况下,在
    ViewModel
    的setter中创建一个属性,该属性的
    PropertyChanged
    事件为
    INotifyPropertyChanged
  • 在XAML中,指向您的
    文本框

  • 然后,在某个地方更改此属性会自动导致更改
    TextBox
    state

    我认为您可以使用面板。把一些东西放在面板下面,放在面板上,然后放上文本框。并在默认情况下使面板不可见。如果满足条件,您可以通过代码使面板可见,在网格对象内添加一个文本框,如

        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;
    }
    

    我认为没有必要动态创建文本框。您应该通过在xaml中创建TextBox和TextBox可见性来管理它。在xaml中创建文本框时,请记住高度应该是文本框的默认值。 这是样品

    <TextBox x:Name="txtVisible" Visibility="Collapsed"/>
    
     if(Condition==met)
       txtVisible.Visibility=Visibility.Visible;
     else
      txtVisible.Visibility=Visibility.Collapsed;
    
    
    如果(条件==满足)
    txtVisible.Visibility=可见性.Visibility;
    其他的
    txtVisible.Visibility=Visibility.Collapsed;
    
    您需要发布一些代码,为我们提供一些上下文。这听起来像是一个简单的可见性绑定。