如何在XAML中将按钮保持禁用连接到Textblock?

时间:2016-02-15 15:36:33

标签: wpf xaml

我有TextBox我希望它控制Button。 只要在TextBoxButton html中所写的内容都不会被删除。

2 个答案:

答案 0 :(得分:2)

您可以使用XAML StyleDataTrigger中完成所有操作。

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

答案 1 :(得分:0)

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

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