如果我有一个List<Tuple<DateTime,DateTime>>,我能在WPF中将其绑定到列表框吗?当然,我知道可以绑定到字典或其他东西,但在这种情况下,我需要发送回一个可能具有相同值的列表,因此使用元组列表似乎是合理的选择。你们有什么想法吗?
是的,您可以将ListBox绑定到元组集合。但是,除非有不这样做的理由,否则我会使用自己类型的集合,因为Tuple类型公开的属性并不特别描述。
确保你已经在后台添加了以下代码:
public partial class MainWindow : Window
{
private readonly ObservableCollection<Tuple<DateTime, DateTime>> _dates = new ObservableCollection<Tuple<DateTime,DateTime>>();
public ObservableCollection<Tuple<DateTime, DateTime>> Dates { get { return _dates; } }
public MainWindow()
{
DataContext = this;
InitializeComponent();
PopulateList();
}
private void PopulateList()
{
_dates.Add(new Tuple<DateTime, DateTime>(DateTime.Now, DateTime.Now));
_dates.Add(new Tuple<DateTime, DateTime>(DateTime.Now, DateTime.Now));
_dates.Add(new Tuple<DateTime, DateTime>(DateTime.Now, DateTime.Now));
}
}
还有XAML:
<Window x:Class="GuiScratch.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ListBox ItemsSource="{Binding Dates}"/>
</Grid>
</Window>