私のアプリケーションでは、ユーザーの承認レベルに応じてボタンを表示/非表示にしたいと考えています。ユーザーがチーム リーダーの場合、ボタンが表示されます。ユーザーがチーム リーダーでない場合は表示されません。
BooleanToVisibilityConverter
リソース ディクショナリで定義されている を
使用して、この問題を解決しようとしました。
<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
がありますか? または何?
ありがとうございました!