【发布时间】:2013-10-15 17:14:43
【问题描述】:
我真的很难理解绑定。我知道有很多其他线程的标题与这个线程几乎相同,但他们都在尝试做一些比我更复杂的事情,所有的答案都假设一大堆我没有得到的东西: (
我正在尝试显示动态更新的消息日志。我已经定义了一个 Message 类:
public class Message
{
public DateTime Timestamp { get; private set; }
public string Value { get; private set; }
public int Severity { get; private set; }
public Message(string value, int severity)
{
Timestamp = DateTime.Now;
Value = value;
Severity = severity;
}
}
我已经简单地定义了一个 MessageLog 类:
public class MessageLog: ObservableCollection<Message>
{
public MessageLog(): base()
{ }
}
在我的 MainWindow 构造函数中,我有一个 Log 属性:
public MessageLog Log { get; private set; }
在 MainWindow 构造函数中我初始化 Log:
public MainWindow()
{
InitializeComponent();
DataContext = this;
Log = new Model.MessageLog();
// and so on
}
在我的主窗口的 XAML 中:
<ListBox Name="MessagePanel" Height="100" ItemsSource="{Binding MessageLog}" IsEnabled="False"/>
现在,如果我将 Message 实例添加到 MessageLog,我希望它们会出现在 ListBox 中。他们没有。我错过了什么?
在此先感谢(如果您能指出我在某个地方清楚地地解释了绑定——尤其是 XAML 对代码的看法以及它可以在哪里寻找东西——那么非常感谢顶部。目前我正在使用 Matthew McDonald 的“C# 中的 Pro WPF 4.5”,但我就是不明白。)
【问题讨论】:
标签: c# wpf xaml binding observablecollection