在我的应用程序中,我想根据用户授权级别显示/隐藏一个按钮。如果用户是团队负责人,则应显示该按钮。如果用户不是团队负责人,则不应显示。
我尝试使用BooleanToVisibilityConverter
资源字典中定义的 a 来解决此问题:
<BooleanToVisibilityConverter x:Key="VisibilityConverter" />
转换器的实现:
<Button Grid.Row="1" Grid.Column="5"
Click="TeamLeader_Click" Visibility="{Binding IsTeamLeader, Converter={StaticResource
VisibilityConverter}}" Style="{StaticResource ButtonStyleMenu}" />
在我的类后面的代码中,我使用依赖属性来更改按钮的可见性。
public static readonly DependencyProperty IsTeamLeaderProperty =
DependencyProperty.Register("IsTeamLeader", typeof(bool),
typeof(MainMenu), new FrameworkPropertyMetadata(false));
public bool IsTeamLeader
{
get { return (bool)GetValue(IsTeamLeaderProperty); }
set { SetValue(IsTeamLeaderProperty, value); }
}
在我的用户控件的“加载事件”中,我初始化了我的属性,false
因此按钮应该被折叠。
private void ViewPage_Loaded(object sender, RoutedEventArgs e)
{
this.IsTeamLeader = false;
}
但这行不通。无论IsTeamLeader
属性在启动时具有哪个值,按钮始终可见。
所以你能帮我并给我一个提示我在哪里做错了吗?我的依赖属性实现有问题BooleanToVisiblityConverter
还是有问题?要不然是啥?
谢谢!