我的任務是當用戶單擊按鈕時,由於該按鈕的值,此StackPanel可以具有特殊功能,因此更改StackPanel的可見性。出於這個原因,我實現了VisibilityConverter,當StackPanelVis爲真時,它應該改變可視性。代碼轉換器:WPF按鈕調用StackPanel visibilityconverter
public class StakPanelToVisible : IValueConverter
{
public static bool StackPanelVis;
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
value = StackPanelVis;
return (bool)value ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(...) {empty}
當用戶按在原因命令,在VM傳遞值StackPanelToVisible代碼指令的按鈕:
public RelayCommand SetAddingButton
{
get
{
return new RelayCommand(SetAddingProperties, true);
}
}
public bool StackPanelVis { get; private set; }
private void SetAddingProperties()
{
TextInducator = "Add";
StakPanelToVisible.StackPanelVis = true;
}
代碼視圖XAML:
<StackPanel Margin="5 10 5 0" Grid.Column="1" >
<StackPanel Visibility="{Binding StackPanelVis, Converter=
{StaticResource StakPanelToVisible}}" >
some elements in StackPanel
<Button Content="Add" Margin="5 5 5 1"
Padding="2" x:Name="AddPosition_button"
Command="{Binding SetAddingButton }"/>
最後一個按鈕應該改變StackPanel的可見性。但是,此代碼不起作用。爲什麼它不起作用?任何其他版本可以幫助我?感謝任何幫助,文章或替代解決方案的任務。