先看例子:
     <Page.DataContext>
         <Local:PartsViewModel/>
     </Page.DataContext>     <ListBox ItemsSource="{Binding Parts}" >
        <ListBox.ItemTemplate>
          <DataTemplate>               <TextBlock Text="{Binding Name}" Visibility="{Binding IsShowPartName, Converter={StaticResource BoolToVisibility}}"/>
       Parts 定义在 PartsViewModel中,IsShowPartName 也定义在PartsViewModel       Name 定义在 Part 中,Parts 是List<Part>       现在的问题是对于ListBox 中的每个TextBlock ,数据源是Parts,所以绑定中Name 和 IsShowPartName 的数据源是Part,这就出现了 IsShowPartName 不属于Part的错误。         有什么办法能够改变IsShowPartName的数据源到PartsViewModel?
       谢谢

解决方案 »

  1.   

    IsShowPartName 是父类的属性呗?(Local:PartsViewModel)用 Relative 指向上级:
    {Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Page}}, Path=DataContext.IsShowPartName}
      

  2.   

    MVVM 没有用过。如果WPF 的基础 都不会,你最好别搞什么架构上的开发。
      

  3.   

    to fangxinggood: 正解,多谢。
      

  4.   

    看到老哥写的关于WPF 3D的文章,我想咨询一下目前有木有WPF绘制3维坐标轴的源码。类似于ZedGraph显示二维图表的那种完善的代码。 我的QQ759105569。希望老哥不吝指导~~