C# 可以将列表框绑定到WPF中的元组列表吗

C# 可以将列表框绑定到WPF中的元组列表吗,c#,wpf,C#,Wpf,如果我有一个列表,我可以绑定到wpf中的列表框吗?我当然知道我可以绑定到字典或其他任何东西,但由于这个原因,我需要发回一个可能具有相同值的列表,所以有一个元组列表是有意义的(或者似乎是有意义的)?有人有什么想法吗 是的,您可以将列表框绑定到元组集合。但是,除非有理由不这样做,否则我将拥有一个您自己类型的集合,因为元组类型上公开的属性不是特别描述性的。当然,您可以绑定到它。我编写了以下代码: public partial class MainWindow : Window { privat

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

是的,您可以将列表框绑定到元组集合。但是,除非有理由不这样做,否则我将拥有一个您自己类型的集合,因为元组类型上公开的属性不是特别描述性的。

当然,您可以绑定到它。我编写了以下代码:

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));
    }
}
公共部分类主窗口:窗口
{
私有只读ObservableCollection _dates=新ObservableCollection();
公共可观测收集日期{get{return_Dates;}}
公共主窗口()
{
DataContext=this;
初始化组件();
大众主义者();
}
私有void PopulateList()
{
_添加(新元组(DateTime.Now,DateTime.Now));
_添加(新元组(DateTime.Now,DateTime.Now));
_添加(新元组(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),那么这可能是一个不错的选择。如果您不这样做,我会说您最好绑定到更具表现力的内容。

您尝试过绑定列表吗?不要使用元组。我测试了Tuple大约5分钟,然后决定这是一个可怕的练习。您可以在很短的时间内创建具有描述性属性的对象。对于Tuple,在2个月后,当您回到代码时,您会说,“WTF,是那个对象吗?”。制造一个物体/$0.02