代码之家  ›  专栏  ›  技术社区  ›  mpen

如何为单个元素设置DataContext?

  •  1
  • mpen  · 技术社区  · 14 年前

    我跟随的初学者教程说我应该在窗口上创建一个名称空间,

    <Window ... xmlns:vm="clr-namespace:MyApp.ViewModels" />
    

    <Window.DataContext>
        <vm:MyViewModel />
    </Window.DataContext>
    

    但我不希望DataContext应用于整个窗口。我希望不同的元素使用不同的上下文。

    我的数据网格定义如下,

     <DataGrid ... DataContext="{Binding}" ItemsSource="{Binding Path=Queue}"
    

    我想是的 DataContext="{Binding}" bit基本上使用“使用父上下文”,但我不能将其设置为 vm:MyViewModel 就在那里?我不确定语法是否正确,而且Visual Studio属性窗口在这方面似乎毫无用处。

    2 回复  |  直到 14 年前
        1
  •  3
  •   Reed Copsey    14 年前

    你可以这样做:

    <DataGrid ... ItemsSource="{Binding Path=Queue}">
        <DataGrid.DataContext>
              <mv:MyViewModel />
        </DataGrid.DataContext>
    </DataGrid>
    

    这和你把它放在窗户上的方法是一样的。

        2
  •  1
  •   mdm20    14 年前

            <DataGrid.DataContext>
                  <vm:MyViewModel />
            </DataGrid.DataContext>