Datacontext из usercontrol является нулевым - PullRequest
0 голосов
/ 29 марта 2012

У меня есть модель представления с членом observablecollection.

Я создал usercontrol, который связывается с этой коллекцией, и для каждого элемента в коллекции я получаю в конструкторе пользовательских элементов управления.В этом конструкторе datacontext имеет значение null, почему это так?

<ItemsControl ItemsSource="{Binding ListOfMyCustomType}">
<ItemsControl.ItemTemplate>
    <DataTemplate>
        <uc:Tile DataContext="{Binding Path=.}"></uc:Tile>
    </DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
        <WrapPanel />
    </ItemsPanelTemplate>
</ItemsControl.ItemsPanel>

Редактировать:
В выходных данных отладки нет ошибок BindingExpression.

Редактировать:
Решенный Матиасом, текст данных недоступен на на этот раз .Он будет доступен при загрузке элемента управления или при изменении текста данных.Недурно!

С уважением,

Мишель

1 Ответ

1 голос
/ 29 марта 2012

Я бы удалил атрибут DataContext и выражение привязки. Ваш пользовательский элемент управления получит любой элемент (внутри коллекции, к которой привязан ItemsControl), привязанный к шаблону текущего элемента.

Тогда в загруженном событии вашего элемента управления вы сможете получить доступ к его DataContext:

var dataContext = this.DataContext as YourCustomType;
...