【发布时间】:2019-06-18 10:00:17
【问题描述】:
我很难解决当对象更新时文本框应如何自动更改其值的问题。我有一个带名称和值的温度类。
public class Temperature
{
public string Name { get; set; }
public double Value { get; set; }
}
在 InitializeComponent() 之后的 MainWindow.xaml.cs 中,我创建了一个 ObservableCollection _lstTempObs = new ObservableCollection();然后我添加一个初始温度对象。
在主窗口中我有一个文本框
<TextBox x:Name="T1" Text="{Binding Path=Value}" HorizontalAlignment="Left" Height="23" Margin="215,55,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
在 MainWindow.xaml.cs 中,我将 datacontext 设置为 T1.DataContext = _lstTempObs.LastOrDefault(); 温度更新来自 API。当我得到新的温度对象时,我将它添加到 ObservableCollection 中,但 GUI 中的值没有改变。
public partial class MainWindow : Window
{
ObservableCollection<Temperature> _lstTempObs = new ObservableCollection<Temperature>();
public MainWindow()
{
InitializeComponent();
_lstTempObs.Add(new Temperature { Name = "T1", Value = "0.321" });
T1.DataContext = _lstTempObs.LastOrDefault();
}
}
【问题讨论】:
-
当您似乎只想显示最后一个元素时,ObservableCollection 的目的是什么?