Привязать к CollectionViewSource в xaml - PullRequest
0 голосов
/ 18 августа 2011

У меня есть ViewModel с 2 свойствами:

  • IsReadOnly
  • SomeCollectionViewSource

Это простой рабочий пример просмотра:

<StackPanel DataContext="{Binding SomeCollectionViewSource}">
  <DatePicker SelectedDate="{Binding Path=Date}" IsEnabled="False" />      
</StackPanel>

Теперь я хочу связать свойство IsEnabled:

<StackPanel DataContext="{Binding}">
  <DatePicker SelectedDate="{Binding Path=?}" IsEnabled="{Binding IsReadOnly}" />      
</StackPanel>

Как должна выглядеть привязка в этом примере? (Я думаю, что я скучаю по чему-то простому)
Я бы предпочел короткую и простую привязку, поскольку у меня есть много элементов управления для привязки.

Есть ли лучший / более простой способ сделать все элементы управления на одном CollectionViewSource доступными только для чтения?

1 Ответ

1 голос
/ 18 августа 2011

При условии, что вышеуказанная привязка нацелена на текущий элемент, это должно быть эквивалентно:

{Binding SomeCollectionViewSource.View/Date}

См. Также ссылки для Binding.Path и синтаксиса PropertyPath , если вы их еще не прочитали, это очень много.

Приведенная выше привязка (из двух ваших привязок) эквивалентна:

{Binding Path=/Date}

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

{Binding Date} binds to: CurrentItem -> Date
{Binding Count} binds to: Count

Для ясности, я бы предложил всегда подробно писать слэш.

( Установка любого DataContext на {Binding}, кстати, бессмысленно )

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