Как установить DataContext для одного элемента? - PullRequest
1 голос
/ 19 октября 2010

Учебник для начинающих, за которым я следовал, сказал, что я должен создать пространство имен в окне,

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

И затем установить DataContext следующим образом:

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

Но я нене хочу, чтобы DataContext применялся ко всему окну.Я хочу, чтобы разные элементы использовали разные контексты.

Мой DataGrid определен как,

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

Я думаю, что DataContext="{Binding}" бит в основном использует "использовать родительский контекст", но не могустановить его на vm:MyViewModel прямо там?Я не уверен в правильном синтаксисе, и окно свойств Visual Studio кажется довольно бесполезным.

Ответы [ 2 ]

3 голосов
/ 19 октября 2010

Вы можете сделать это как:

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

По сути, это то же самое, что и для окна.

1 голос
/ 19 октября 2010

Вы можете установить текст данных на самом элементе управления. В случае DataGrid вы бы использовали

        <DataGrid.DataContext>
              <vm:MyViewModel />
        </DataGrid.DataContext>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...