根据另一个控件的视觉状态设置可见性
Setting Visibility based on another control's visualstate
是否可以根据另一个控件的视觉状态设置 Grid
或其他元素的可见性?我刚刚开始思考 VisualStateManager
概念(发现样式触发器不能在通用应用程序中使用),但不知道是否可以这样做。
对于我的具体情况,如果当前选择了 ListView
中的特定 item/index,我是否可以设置一个或多个元素的可见性?如果是,怎么做?
我会在视图模型的 属性 中保留 ListView
选择并将 Grid.Visibility
绑定到那个 属性。您将需要 IValueConverter
将所选项目的数据类型转换为 System.Windows.Visibility
,这是 Grid.Visibility
绑定所必需的。
如果确定可见性的逻辑更复杂,例如需要应用程序状态,您可以将 属性 bool IsImportantItemSelected
添加到视图模型并将 Grid.Visibility
绑定到此 属性。这种方法允许您将复杂的逻辑保留在视图模型中。您需要再次使用 IValueConverter
才能从 bool
转换为 System.Windows.Visibility
。
是否可以根据另一个控件的视觉状态设置 Grid
或其他元素的可见性?我刚刚开始思考 VisualStateManager
概念(发现样式触发器不能在通用应用程序中使用),但不知道是否可以这样做。
对于我的具体情况,如果当前选择了 ListView
中的特定 item/index,我是否可以设置一个或多个元素的可见性?如果是,怎么做?
我会在视图模型的 属性 中保留 ListView
选择并将 Grid.Visibility
绑定到那个 属性。您将需要 IValueConverter
将所选项目的数据类型转换为 System.Windows.Visibility
,这是 Grid.Visibility
绑定所必需的。
如果确定可见性的逻辑更复杂,例如需要应用程序状态,您可以将 属性 bool IsImportantItemSelected
添加到视图模型并将 Grid.Visibility
绑定到此 属性。这种方法允许您将复杂的逻辑保留在视图模型中。您需要再次使用 IValueConverter
才能从 bool
转换为 System.Windows.Visibility
。