解析动作后,Wpf按钮不会隐藏

时间:2017-12-13 06:59:08

标签: c# wpf

我在datagrid中有这个标记用于按钮。

<DataTemplate x:Key="acceptingTextOnBtn">
    <StackPanel VerticalAlignment="Bottom">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <Button
                x:Name="ItemButton"
                Grid.Column="0"
                HorizontalAlignment="Left"
                Command="{Binding DataContext.AcceptBtnCmd, RelativeSource={RelativeSource AncestorType=local:UCDeliveryDetail}}"
                CommandParameter="{Binding DataContext.SelectedOneWeighing, RelativeSource={RelativeSource AncestorType=local:UCDeliveryDetail}}"
                Content="Schválit"
                Style="{StaticResource DialogButton}"
                Visibility="{Binding WeighingType, Converter={StaticResource IsControlWeighToVisibility}, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
            <Button
                x:Name="ItemButtonStorno"
                Grid.Column="0"
                HorizontalAlignment="Left"
                Command="{Binding DataContext.ResetWeighingBtnCmd, RelativeSource={RelativeSource AncestorType=local:UCDeliveryDetail}}"
                CommandParameter="{Binding DataContext.SelectedOneWeighing, RelativeSource={RelativeSource AncestorType=local:UCDeliveryDetail}}"
                Content="Stornovat"
                Style="{StaticResource DialogButton}"
                Visibility="{Binding CanBeCancelled, Converter={StaticResource IsWeightResetToVisibility}, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
        </Grid>
    </StackPanel>
</DataTemplate>

点击按钮后,我想立即隐藏此按钮。我为此写了一个转换器,但它不起作用。

转换为接受按钮:

    public class IsControlWeighingToVisibility : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            var info = value as string;                  

            if (System.Convert.ToInt32(info) == (int)WeighingType.CheckWeighingWithSAP)
            {
                return Visibility.Visible;
            }         

            if(info == WeighingType.CheckWeighingWithSAP.ToString())
            {
                return Visibility.Visible;
            }

            else
            {
                return Visibility.Collapsed;
            }
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value is Visibility && (Visibility)value == Visibility.Visible)
            {
                return false;
            }

            return true;
        }
    }

取消按钮转换器:

 public class IsWeightResetToVisibility : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        try
        {
            bool info = Boolean.Parse(value.ToString());

            if (!info)
                return Visibility.Collapsed;

            return Visibility.Visible;
        }
        catch (Exception)
        {
            return Visibility.Collapsed;
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value is Visibility && (Visibility)value == Visibility.Visible)
        {
            return false;
        }

        return true;
    }
}

0 个答案:

没有答案