你能在WPF中将一个列表框绑定到一个元组列表吗?
本文关键字:一个 列表 绑定 元组 WPF | 更新日期: 2023-09-27 18:17:47
如果我有一个列表
是的,您可以将ListBox绑定到Tuples集合。但是,除非有不这样做的理由,否则我将拥有您自己类型的集合,因为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>
当我运行它时,我看到一个包含两个日期时间的列表,作为列表成员连接在一起。
也就是说,你是否想这样做可能更多地取决于特定的上下文。如果需要具有非常可插拔的绑定类型是有意义的(例如,日期时间可以更改为string或int),这可能是一个不错的选择。如果你不这样做,我想说你最好绑定一些更有表现力的东西。