C# 如何使按钮在windows phone中以编程方式可见?

C# 如何使按钮在windows phone中以编程方式可见?,c#,button,binding,windows-phone,C#,Button,Binding,Windows Phone,我有一个名为“删除”的按钮。 我只想在满足某些条件时才显示, 那我怎么做呢 按钮创建的XAML代码是 <Button x:Name="DeleteButton" Content="Delete" HorizontalAlignment="Left" Height="64" Margin="74,579,0,-9" VerticalAlignment="Top" Width="314" FontSize="24"/> 您有一个可见性属性 您有一些方法可以做到这一点: 在代码隐藏中,您

我有一个名为“删除”的按钮。 我只想在满足某些条件时才显示, 那我怎么做呢

按钮创建的XAML代码是

<Button x:Name="DeleteButton" Content="Delete" HorizontalAlignment="Left" Height="64" Margin="74,579,0,-9" VerticalAlignment="Top" Width="314" FontSize="24"/>

您有一个可见性属性

您有一些方法可以做到这一点:

  • 在代码隐藏中,您应该:

    if (condition)
    {
        DeleteButton.Visibility = Visibility.Visible; //Also possible to Collapse (hide).
    }
    
    上面的代码应该可以帮助您分别使按钮不可见和可见

    注意:这不太可取,它不是动态的,可能会导致重复和不必要的代码

  • 更好、更具活力的方法是:

    可以创建bool属性并将可见性按钮绑定到该属性,如下所示:

    bool IsVisible { get; set; } //Code behind
    
    在xaml中:

    <!-- Pay attention: The Converter is still not written, follow next steps -->
    <Button x:Name="DeleteButton" 
            Content="Delete"
            HorizontalAlignment="Left" Height="64" Margin="74,579,0,-9" 
            VerticalAlignment="Top" Width="314" FontSize="24" 
            Visibility="{Binding IsVisible, 
                         Converter={StaticResource BooleanToVisibilityConverter}}" />
    
    有关更多信息,请学习:


  • 您还可以使用xaml和绑定:

    在xaml中:

    <UserControl.Resources>
       <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
    </UserControl.Resources>
    

    IsVisible是ViewModel中的一个布尔属性

    难道你不能给IsVisible属性一个可见性数据类型而不是布尔数据类型吗?+1但是作为一个注释。。。这仅适用于.NET3.0及更高版本。
    <Application
    x:Class="UI.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:converters="using:UI.Converters">
    
    <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
    
    if (condition)
    {
        IsVisible = true;
    }
    
    <UserControl.Resources>
       <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
    </UserControl.Resources>
    
    Visibility="{Binding IsVisible, Converter={StaticResource BooleanToVisibilityConverter}}"