wp7 c#获取控制数据上下文

时间:2013-09-30 10:25:09

标签: c# windows-phone-7 data-binding user-controls windows-phone

我有一个列表框,其项目模板是用户控件:

<ListBox
     x:Name="ChatBox"
     Width="450"
     ItemsSource="{Binding ChatMessage}">
          <ListBox.ItemTemplate>
              <DataTemplate>
                    <local:ChatItem DataContext="{Binding ChatMessage}"/>
              </DataTemplate>
          </ListBox.ItemTemplate>
</ListBox>

在我的代码背后:

messages = new ObservableCollection<ChatMessage>(dbMessages);
ChatBox.ItemsSource = messages;

如何从控件内部获取绑定元素,即聊天消息对象?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您的 ChatItem usercontrol会自动将其Datacontext转换为 ChatMessage 对象。不需要再次设置它。并且对于将usercontrol的属性绑定到ChatMessage对象属性,那么你的ChatItem属性必须是依赖属性,如果你已经拥有它们,那么只需将它们绑定到ChatMessage属性就像这样。

<ListBox
 x:Name="ChatBox"
 Width="450"
 ItemsSource="{Binding ChatMessage}">
      <ListBox.ItemTemplate>
          <DataTemplate>
                <local:ChatItem DataContext="{Binding ChatMessage}" ChatItemDependencyProperty = "{Binding Path=ChatMessageProperty}" />
          </DataTemplate>
      </ListBox.ItemTemplate>

希望它可以帮助你..