最近、私と私の同僚は、viewModelにある可視性プロパティへのビューのバインディングについて議論しています。viewmodelの可視性にバインドするのは良い設計ですか?
私たちのプロジェクトの1つでは、私の同僚がvisibilityプロパティにバインドされたコントロールを表示/折りたたむために、必要に応じてviewModelはプロパティをVisibility.Visible/Visibility.Collapseに設定します。
それは機能しますが、私はそれが良いデザインであることを知りたいと思います。
viewModelがプロパティをVisible/collapseに設定している場合、viewModelはどのビューが行っているかを知っていますが、boolプロパティを含む必要があり、ビューはboolプロパティにバインドし、要素を表示/非表示にするかどうかを決定します。この場合、viewmodelはビューについて何も知らない。
例: ユーザーがチーム実装するほうがよい方法
private bool _isUserBelongsToTeam;
public bool IsUserBelongsToTeam
{
get { return _isUserBelongsToTeam; }
set { _isUserBelongsToTeam = value; NotifyPropertyChange("IsUserBelongsToTeam"); }
}
XAML:
<TextBlock Text= "Team name" Visibility= "{Binding IsUserBelongsToTeam, Converter={StaticResource BoolToVisibilityConverter}}" />
private bool _isTeamVisible;
public bool IsTeamVisible
{
get { return _isTeamVisible; }
set { _isTeamVisible= value; NotifyPropertyChange("IsTeamVisible"); }
}
XAML:
<TextBlock Text= "Team name" Visibility= "{Binding IsTeamVisible}" />
に属する場合のTextBlock(チーム名)を示しますか?
役に立つ答えをupvoteすることを忘れないでください:) https://stackoverflow.com/help/privileges/vote-up – mm8