0

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

<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;

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

感谢帮助

4

1 回答 1

0

您的ChatItem用户控件会自动将其 Datacontext 获取到ChatMessage对象。不需要重新设置。并且要将用户控件的属性绑定到 ChatMessage 对象属性,那么如果您已经拥有 ChatItem 属性,那么您的 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>

希望对你有帮助。。

于 2013-09-30T11:08:45.420 回答