Можете ли вы привязать список к списку кортежей в WPF? - PullRequest
4 голосов
/ 14 декабря 2011

Если у меня есть список >, могу ли я связать это со списком в wpf? Я знаю, конечно, что могу связываться со словарями или чем-то еще, но в этом случае мне нужно отправить обратно список, который мог бы иметь одинаковые значения, поэтому имеет смысл (или кажется) имеет смысл иметь список кортежей? У кого-нибудь есть мысли?

Ответы [ 2 ]

5 голосов
/ 14 декабря 2011

Да, вы можете привязать ListBox к коллекции кортежей.Однако, если нет причины не делать этого, у меня будет коллекция вашего собственного типа, так как свойства, представленные в типе Tuple, не являются особенно описательными.

2 голосов
/ 14 декабря 2011

Конечно, вы можете привязать к нему.Я собрал следующий код:

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), это может быть хорошим вариантом.Если вы этого не сделаете, я бы сказал, что вам лучше связываться с чем-то более выразительным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...