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

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

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

{Binding Path = Values ​​[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 { В XAML путь будет записан как:

{Binding Path = Values ​​[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 { В XAML путь будет записан как:

{Binding Path = Values ​​[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 { Согласно документации параметры используются для индексаторов. Но когда я пишу привязку как

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

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

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

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

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

new Binding { Путь = новый PropertyPath («Значения []», новое DateTime (2011, 01, 01)) }

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

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

12
задан Pavlo Glazkov 3 March 2011 в 08:50
поделиться