【发布时间】:2008-11-30 14:37:47
【问题描述】:
我从 Silverlight 开始。我想在 UI 上显示消息列表,但数据绑定不适合我。
我有一个消息类:
public class Message
{
public string Text { get; set; }
...
}
我有带有消息依赖属性的消息显示 Silverlight 用户控件:
public partial class MessageDisplay : UserControl
{
public static readonly DependencyProperty MessageProperty =
DependencyProperty.Register("Message", typeof(Message),
typeof(MessageDisplay), null);
public MessageDisplay()
{
InitializeComponent();
}
public Message Message
{
get
{
return (Message)this.GetValue(MessageProperty);
}
set
{
this.SetValue(MessageProperty, value);
this.DisplayMessage(value);
}
}
private void DisplayMessage(Message message)
{
if (message == null)
{
this.MessageDisplayText.Text = string.Empty;
}
else
{
this.MessageDisplayText.Text = message.Text;
}
}
}
}
然后在我的主控件xaml中
<ListBox x:Name="MessagesList" Style="{StaticResource MessagesListBoxStyle}">
<ListBox.ItemTemplate>
<DataTemplate>
<Silverbox:MessageDisplay Message="{Binding}"></Silverbox:MessageDisplay>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox
并且我在 control.xaml.cs 代码中绑定:
this.MessagesList.SelectedIndex = -1;
this.MessagesList.ItemsSource = this.messages;
数据绑定没有报错,而且列表中似乎有正确数量的项目,但从未命中 MessageDisplay 的 Message 属性设置器中的断点,并且消息从未正确显示。
我错过了什么?
【问题讨论】:
标签: silverlight data-binding xaml