我真的很难理解绑定。我知道有很多其他线程的标题与这个线程几乎相同,但他们都在尝试做一些比我更复杂的事情,所有的答案都假设一大堆我没有得到的东西: (
我正在尝试显示动态更新的消息日志。我定义了一个 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麦当劳的“C# 中的 Pro WPF 4.5”,我只是不明白。)