MVVMシナリオでは、ハイパーリンクのクリックまたはイメージクリックに基づいてユーザーコントロールを表示/非表示にしたいとします。これはXAMLでどのように達成できますか?wpf mvvmでスタックパネルを非表示/表示する方法
5
A
答えて
4
バインドビューモデルのブール値プロパティにVisibility
プロパティは、BooleanToVisibilityConverter
<Window.Resources>
<BooleanToVisibilityConverter x:Key="visibilityConverter" />
</Window.Resources>
...
<MyUserControl Visibility="{Binding IsMyUserControlVisible, Converter={StaticResource visibilityConverter}}" />
を使用してのViewModel:
private bool _isMyUserControlVisible;
public bool IsMyUserControlVisible
{
get { return _isMyUserControlVisible; }
set
{
_isMyUserControlVisible = value;
OnPropertyChanged("IsMyUserControlVisible");
}
}
0
は、あなたがいるか否かを判断し、あなたのViewModelのbooleanプロパティを持っていると言いますコントロールを表示する
public bool DisplayControl { get; set; }
BooleanToVisibiltyConverter
<Window.Resources>
<BooleanToVisibilityConverter x:Key="visibilityConverter" />
</Window.Resources>
そして、あなたのコントロールを使用してStackPanel
のvisibiiltyをバインドします
<StackPanel Visibility="{Binding DisplayControl, Converter={StaticResource visibilityConverter}}"/>
+0
私は '' InotifyPropertyChanged'について言及していませんでした。データが変更されるたびにビューを更新するために「DisplayProperty」を使用します。 –
13
は、トグルボタンを使用してBooleanToVisibilityConverter
を使用してUserControl
の可視性をバインド:
は、リソースを定義します:
<BooleanToVisibilityConverter x:Key="BoolToVisibility" />
トグルボタン:
<ToggleButton x:Name="VisibilityToggle>
<Image Source="..." />
</ToggleButton>
ユーザーコントロール:
<MyControl Visibility="{Binding IsChecked, ElementName=VisibilityToggle, Converter={StaticResource BoolToVisibility}}" />
関連する問題
- 1. View Controls表示/非表示WPF MVVM
- 2. WPFグリッドオーバーフローを非表示にする方法(CSSオーバーフローのような:非表示)
- 3. WPFリボンコントロールの非表示/非表示を無効にする方法
- 4. 問題:ListBoxはスタックパネルとテキストボックスをすべてWpfで非表示にします
- 5. 複合WPF:ビューの表示/非表示?
- 6. C#でプロセスを非表示/非表示にする方法は?
- 7. WPF MVVMを使用した負荷の事前レンダリング/非表示
- 8. datepickerのカレンダーの表示を非表示のwpfに設定する方法
- 9. WPF設定ページ。コントロールの非表示/表示。ベストプラクティスWPFで
- 10. WPFでコンボボックスの項目を非表示にする方法
- 11. ブートストラップデータテーブルの列を非表示/非表示にする方法は?
- 12. メインウィンドウのクロムエクステンションを非表示/非表示にする方法
- 13. ウィンドウを表示/非表示にする最善の方法
- 14. ブートストラッププルダウンの表示/非表示方法
- 15. コンテンツの表示/非表示方法
- 16. 子コンポーネントの表示/非表示方法
- 17. ボタンの表示/非表示方法は?
- 18. ドロップダウンメニューの表示/非表示方法
- 19. ぼかし効果によるWPFウィンドウの表示/非表示方法
- 20. jQueryでdivを表示/非表示にする方法
- 21. Visual Basicで画面を表示/非表示にする方法
- 22. wicketでyui.calendar.DatePickerを表示/非表示にする方法
- 23. Zend Frameworkでメニューアイテムを表示/非表示する方法
- 24. ボタンクリックでコンテンツを表示/非表示にする方法は?
- 25. ローディングホイールをjavascriptで表示/非表示にする方法
- 26. テキストを非表示にしてクリックで表示する方法
- 27. ナビゲーション・ドロワーをプログラムで表示/非表示にする方法
- 28. material-uiテーブルで列を非表示/表示する方法は?
- 29. EmberJSでビューを表示/非表示にする方法
- 30. WPF、MVVMでDatagridの行をプログラムで表示する
[データバインド](http://msdn.microsoft.com/en-us/library/ms750612.aspx)[ '可視性'](http://msdn.microsoft.com/en-us/library/system.windows.uielement.visibility(v = vs. 95).aspx)プロパティを、BoolToVisibiltyConverterを使用してVMのbooleanプロパティに設定します。 –
いいえ私の意見では、ここでViewModelのプロパティを定義する必要があります。 XAMLでのみ行う方法については、私の答えを参照してください。 – Marc
@mark、あなたのリンクを見ることができませんでした – SNS