相关疑难解决方法(0)

从DataTemplate访问父DataContext

我有一个ListBox绑定到ViewModel上的子集合.列表框项基于父ViewModel上的属性在datatemplate中设置样式:

<Style x:Key="curveSpeedNonConstantParameterCell">
   <Style.Triggers>
      <DataTrigger Binding="{Binding Path=DataContext.CurveSpeedMustBeSpecified, 
          ElementName=someParentElementWithReferenceToRootDataContext}" 
          Value="True">
          <Setter Property="Control.Visibility" Value="Hidden"></Setter>
      </DataTrigger>
   </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

我收到以下输出错误:

System.Windows.Data Error: 39 : BindingExpression path error: 
 'CurveSpeedMustBeSpecified' property not found on 
   'object' ''BindingListCollectionView' (HashCode=20467555)'. 
 BindingExpression:Path=DataContext.CurveSpeedMustBeSpecified; 
 DataItem='Grid' (Name='nonConstantCurveParametersGrid');
 target element is 'TextBox' (Name=''); 
 target property is 'NoTarget' (type 'Object')
Run Code Online (Sandbox Code Playgroud)

因此,如果我将绑定表达式更改为"Path=DataContext.CurrentItem.CurveSpeedMustBeSpecified"它可以工作,但只要父用户控件的datacontext是a BindingListCollectionView.这是不可接受的,因为用户控件的其余部分会自动绑定到CurrentItemon的属性BindingList.

如何在样式中指定绑定表达式,以便无论父数据上下文是集合视图还是单个项目,它都可以工作?

data-binding wpf xaml relativesource datatemplate

101
推荐指数
4
解决办法
11万
查看次数

可视树和逻辑树的概念

我理解Visuallogical树的概念,但我仍然无法理解这些的真正用途和需要.虽然没有必要知道这些树的一切,但我相信它会在一些高级场景中受益.

我已经阅读了以下文章并理解了这些概念

http://www.codeproject.com/KB/WPF/WpfElementTrees.aspx

http://blogs.msdn.com/b/mikehillberg/archive/2008/05/23/of-logical-and-visual-trees-in-wpf.aspx

我想要理解的是在框架内使用这些(简单的单词和易于理解的场景)?你究竟何时想出何时使用视觉或逻辑树?有助于可视化这些树的任何其他信息?

.net wpf visual-tree logical-tree

5
推荐指数
0
解决办法
5793
查看次数

高级 XAML 数据绑定教程

有人可以推荐一个很好的教程或视频来解释更高级的 XAML 数据绑定语法吗?我理解并使用我的 View 和 ViewModel 类之间的简单绑定,例如:

Text="{Binding Name}"
Run Code Online (Sandbox Code Playgroud)

但有时我会在其他教程和博客文章中看到这样的绑定,我很难遵循。

ToolTip="{Binding Path=AdornedElement.ToolTip,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Adorner}}}"
Run Code Online (Sandbox Code Playgroud)

通常我可以通过复制到代码来让事情工作,但我真的很想了解发生了什么。

.net data-binding wpf xaml

2
推荐指数
1
解决办法
3784
查看次数