首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将可见值的Fallbackvalue设置为“隐藏”时,在designer中显示控件

将可见值的Fallbackvalue设置为“隐藏”时,在designer中显示控件
EN

Stack Overflow用户
提问于 2018-01-05 10:02:32
回答 1查看 497关注 0票数 1

在几个视图中,我们有容器组件(例如GridScrollViewer),它们绑定到自己的ViewModel或ViewModelItem上的属性。

在某些情况下,可以在不初始化组件的ViewModel/ViewModelItem的情况下显示包含这些组件的View (父)。为了避免显示用户的空数据,我们使用FallBackValue=Hidden来确保容器只在它的ViewModel/ViewModelItem初始化/加载时显示。

一个假设的例子是包含一个Window和更详细的右边视图的DataGrid。详细的视图是自己的UserControl和自己的ViewModel,DataGrid也有自己的ViewModel。当打开“表示Window”时,ViewModel of DataGrid将立即加载--但由于没有选择任何行,属于“详细视图”的ViewModel不会被弱化,这意味着详细视图的Visibility绑定将失败,而绑定的FallbackValue将用于隐藏详细视图。这种方法的问题是Visual /XAML设计器将不会显示受影响容器的内容,因为它们由于其FallbackValue而被隐藏。

问:是否有一种方法可以让设计人员显示特定的控件/组件,这些控件/组件将FallBackValueVisibility绑定设置为Hidden?单击这些隐藏容器中的XAML代码不会显示它们。

编辑1

我找到了的答案。设置d:IsHidden="false"没有帮助。无论是在Visibility属性之前还是之后设置它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-05 12:58:34

当涉及到设计器时,您必须设置设计数据上下文。

要做到这一点,通常需要在xaml文件中执行以下操作:

代码语言:javascript
复制
<Control, Page or Window
    xmlns:vm="clr-namespace:VM.ViewModel"
    d:DataContext="{d:DesignInstance {x:Type vm:YourViewModelNameHere}, IsDesignTimeCreatable=True}" 
    .../>  

但是,有时就像在您的例子中一样,复杂的ViewModel需要更多的灵活性。为此,我将使用Blend及其功能,即它将为您生成虚拟数据,并为您设置控件的数据上下文。

有关更多信息,请参阅这篇MSDN文章。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48111207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档