我绑定了我的xaml代码中的两个按钮的Visiblity我正在尝试使用播放/暂停按钮,我想要做的就是在单击后隐藏播放按钮并显示暂停按钮,并不完全确定这是否是最好的方法,但嘿,如果它有效,我们就很好!XAML可见性绑定不起作用
这里:
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid Width="50" Height="50" VerticalAlignment="Center" HorizontalAlignment="Center">
<Button x:Name="PlayButton" Style="{DynamicResource MetroCircleButtonStyle}" Visibility="{Binding PlayButtonVisibility}"
Width="50" Height="50" HorizontalAlignment="Center"
VerticalAlignment="Center" Click="OnPlayButtonClicked"
d:DataContext="{d:DesignInstance local:MainWindow}">
<Rectangle Width="20"
Height="20">
<Rectangle.Fill>
<VisualBrush Stretch="Fill"
Visual="{StaticResource appbar_control_play}" />
</Rectangle.Fill>
</Rectangle>
</Button>
<Button x:Name="PauseButton" Style="{DynamicResource MetroCircleButtonStyle}" Visibility="{Binding PauseButtonVisibility}"
Width="50" Height="50" HorizontalAlignment="Center"
VerticalAlignment="Center" Click="OnPauseButtonClicked"
d:DataContext="{d:DesignInstance local:MainWindow}">
<Rectangle Width="20"
Height="20">
<Rectangle.Fill>
<VisualBrush Stretch="Fill"
Visual="{StaticResource appbar_control_pause}" />
</Rectangle.Fill>
</Rectangle>
</Button>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
C#代码在这里:
private Visibility _playButtonVisiblity;
private Visibility _pauseButtonVisiblity = Visibility.Hidden;
public Visibility PlayButtonVisibility
{
get
{
return _playButtonVisiblity;
}
set { _playButtonVisiblity = value;
NotifyPropertyChanged("playButton");
}
}
public Visibility PauseButtonVisibility
{
get
{
return _pauseButtonVisiblity;
}
set
{
_pauseButtonVisiblity = value;
NotifyPropertyChanged("pauseButton");
}
}
但出于某种原因或其他,每一次我尝试使用代码来改变的知名度,它不生效,不知道至于为什么这会考虑到目前为止的一切看起来是正确的。
除了你已经得到的答案,我只想指出,你可能也会得到你正在寻找一个风格的ToggleButton的行为 – Spongebrot