Wpf 绑定到资源
我有大约15个控件,通过转换器将的可见性属性绑定到bool。然而,在设计师中,它们现在一直被隐藏,我不希望它们被隐藏。为了解决这个问题,我在编辑和调试之间手动进行了更改,这是一项耗时且烦人的工作。我想我可以定义一个资源来设置可见性属性,当我编辑时,我只需将其设置为可见,在调试之前将其更改为绑定到我的bool。是的,我仍然在不断地改变一些东西,但这只是一件事,而不是15件左右 我在想这样的事情:Wpf 绑定到资源,wpf,xaml,mvvm,Wpf,Xaml,Mvvm,我有大约15个控件,通过转换器将的可见性属性绑定到bool。然而,在设计师中,它们现在一直被隐藏,我不希望它们被隐藏。为了解决这个问题,我在编辑和调试之间手动进行了更改,这是一项耗时且烦人的工作。我想我可以定义一个资源来设置可见性属性,当我编辑时,我只需将其设置为可见,在调试之前将其更改为绑定到我的bool。是的,我仍然在不断地改变一些东西,但这只是一件事,而不是15件左右 我在想这样的事情: <Window.Resources> <BooleanToVisibilit
<Window.Resources>
<BooleanToVisibilityConverter x:Key=BoolToVisConverter"/>
<Visibility x:Key="BoundVisibility">Visible</Visibility>
</Window.Resources>
{Binding MyBool,Converter={StaticResource BoolToVisConverter}
然而,这不起作用。我想做的事可能吗?或者有人有任何其他想法来完成我试图做的事情吗?在创建虚拟机的页面视图中,使用以下逻辑:
DataContext = new MainVm() { MyBool = DesignerProperties.GetIsInDesignMode(this)};
否则,您需要在VM中提供一个参与依赖属性系统的对象(一个
DependencyObject
,例如控件或窗口)引用,并相应地调整MyBool
也许不是一个通过编码的解决方案
您可以定义这3个键,例如,使用“全部替换”Visual Studio功能将使用的键值从VisibilityVisible更改为VisibilityHidden(确保仅在文档中替换)。为了防止资源被替换,为了方便起见,您可以在单独的文件中定义资源
<Visibility x:Key="VisibilityVisible">Visible</Visibility>
<Visibility x:Key="VisibilityHidden">Hidden</Visibility>
<Visibility x:Key="VisibilityCollapse">Collapsed</Visibility>
可见
隐藏的
崩溃
窗口是否具有设计时数据上下文或未设置?是的,对于包含MyBoolAre的ViewModel,您反对只设置回退值
?像{Binding MyBool,Converter={StaticResource BoolToVisConverter},FallbackValue='Visible'}
不知道有这样的事情!我试试看,谢谢!遗憾的是,它没有起作用,不过谢谢你的建议,至少你让我意识到了后备价值
!
<Visibility x:Key="VisibilityVisible">Visible</Visibility>
<Visibility x:Key="VisibilityHidden">Hidden</Visibility>
<Visibility x:Key="VisibilityCollapse">Collapsed</Visibility>