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