2015-01-06 5 views
0

У меня относительно простой вопрос, который я не понимаю. Предположим, у меня есть ContentControl и ContentTemplate указанного, и я хотел бы сделать следующее:Зачем устанавливать контент в ContentControl?

<ContentControl ContentTemplate="{StaticResource UserView}" DataContext="{Binding User}" /> 

Однако, к моему удивлению, это совершенно не удается, в то время как следующая строка работает отлично:

<ContentControl ContentTemplate="{StaticResource UserView}" Content="{Binding User}" /> 

При ближе экзамен, первая строка дает удивительный null как свой DataContext, тогда как последний имеет правильный DataContext.

Может кто-нибудь объяснить мне, что происходит?

Спасибо за все!

ответ

1

Я полагаю, что вы свяжете свойству User, который определен некоторый ViewModel. Чем вы не должны установить DataContext:

<ContentControl ContentTemplate="{StaticResource UserView}" Content="{Binding}" DataContext="{Binding User}" /> 

И чаще пишут это:

<ContentControl ContentTemplate="{StaticResource UserView}" Content="{Binding User}"/> 
0

я думаю, что в первом примере Содержание недвижимости является недействительным, так что вы должны сделать это

<ContentControl ContentTemplate="{StaticResource UserView}" Content="{Binding}" DataContext="{Binding User}" /> 
+1

Мне кажется, если я делаю это ' 'является избыточным или нет? Потому что со второй строкой DataContext будет правильно настроен. – Snowflake

+0

, тогда основная проблема, с которой вы столкнулись, - установить значение null в Content .. тогда как при установке '' вы можете использовать «пользовательский объект с другим свойством – safi

Смежные вопросы