繁体   English   中英

如何在XAML中使按钮保持禁用状态(与Textblock有关)?

[英]How can I make a Button stay disable conected to Textblock in XAML?

我有一个想要让它控制ButtonTextBox 只要在TextBox没有写入任何内容,该Button就会被禁用。

您可以使用Style DataTriggerXAML完成所有这些DataTrigger

<TextBlock x:Name="myTextBlock" />
<Button>
    <Button.Style>
        <Style TargetType="Button">
            <Setter Property="IsEnabled" Value="True"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding Text.Length, ElementName=myTextBlock}" Value="0">
                    <Setter Property="IsEnabled" Value="False"/>
                </DataTrigger>
            </Style.Troggers>
        </Style>
    </Button.Style>
</Button>

您必须使用数据绑定和转换器

<TextBlock x:Name="textBlock" />
<Button IsEnabled="{Binding ElementName=textBlock, Path=Text, Converter={StaticResource TextToBoolConverter}}" /> 

转换器看起来像这样:

 public class TextToBoolConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            var text = value as string;

            if (text.Length > 0)
            {
                return true;
            }

            return false;
        }

        public object ConvertBack(object value, Type targetType, object parameter, string language)
        {
            return value;
        }
    }

这在您的页面中:

<Page.Resources>
        <local:TextToBoolConverter x:Name="TextToBoolConverter" />
</Page.Resources>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM