我綁定了我的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