PropertyPath и PathParameters в конструкторе

Я пытался привязать свои столбцы DataGrid к списку, в котором элемент для столбца можно было бы получить с помощью индексатора. Тип индексатора - DateTime.

Я создаю столбцы DataGrid с помощью кода и хотел создать привязку для извлечения значения из списка. В XAML путь будет записан как:

{Путь привязки = значения [01/01/2011]}

Но так как я делаю это в коде позади, мне нужно определить путь, используя PropertyPath, например:

new Binding{
    Path = new PropertyPath("Values[01/01/2011]")
}

Существует еще одна перегрузка для конструктора, который принимает путь и массив параметров. Согласно документации параметры используются для индексаторов. Но когда я пишу свое привязку как

new Binding {
    Path = new PropertyPath("Values", new DateTime(2011, 01, 01))
}

привязка не может разрешить путь. Достаточно справедливо, я не утверждаю, что он должен искать индексатора. Но если я напишу его как:

new Binding {   Path = new PropertyPath ( "Значения []", новый DateTime (2011, 01, 01)) }

то DateTime.MinValue передается в индекс.

Может кто-нибудь объяснить мне, как я использую PathParameters в конструкторе и как я могу привязываться к индексаторам, не делая ToString для моего значения в фактическом пути?

Ответ 1

На основе этой статьи MSDN вам нужно будет указать "(0)", чтобы указать, где должен быть установлен параметр. Таким образом, следующее должно работать:

new Binding {
    Path = new PropertyPath("Values[(0)]", new DateTime(2011, 01, 01))
}