2011-12-14 38 views
4

如果我有一个列表<元组DateTime,DateTime >>我可以将它绑定到wpf中的列表框吗?我当然知道我可以绑定到字典或其他任何东西,但是在这个原因中,我需要发回一个可能具有相同值的列表,所以有一个元组列表是有意义的(或似乎)是有意义的?任何人有任何想法?你可以绑定一个列表框到WPF中的元组列表中

+0

你试过绑定List Paparazzi 2011-12-14 19:28:49

回答

2

当然,你可以绑定到它。我扔在一起,下面的代码背后:

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> 

当我跑,我看到的项目与串接为成员名单两个日期时间的列表。

也就是说,不管你是否想要这样做,可能更多地取决于具体的上下文。如果需要有非常可插拔的绑定类型是有意义的(即日期时间可能更改为字符串或整型),这可能是一个不错的选择。如果你不这样做,我会说你会更好地约束更有表现力的东西。

5

是的,你可以将一个ListBox绑定到一个元组集合。但是,除非有理由不这样做,否则我会收集您自己的类型的集合,因为暴露在Tuple类型上的属性并不具有特别的描述性。