2010-03-29 4 views
1

Я привязываю сетку данных к коллекции объектов Task. Конкретная колонка нуждается в некоторых специальных правил, касающихся редактирования:Silverlight DataGrid устанавливает ячейку IsReadOnly программно

<!--Percent Complete--> 
<data:DataGridTextColumn Header="%" 
         ElementStyle="{StaticResource RightAlignStyle}" 
         Binding="{Binding PercentComplete, Mode=TwoWay, Converter={StaticResource PercentConverter}}" /> 

То, что я хочу сделать, это установить IsReadOnly свойство только для процентов полной ячейки для каждой задачи на основе собственности на реальный объект Task. Я попытался это:

<!--Percent Complete--> 
<data:DataGridTextColumn Header="%" 
         ElementStyle="{StaticResource RightAlignStyle}" 
         Binding="{Binding PercentComplete, Mode=TwoWay, Converter={StaticResource PercentConverter}}" 
         IsReadOnly={Binding IsNotLocalID} /> 

, но, по-видимому, вы не можете привязать к IsReadOnly собственности на колонке сетки данных. Каков наилучший способ сделать то, что я пытаюсь сделать?

ответ

1

Я не думаю, что вы можете привязываться непосредственно к этому. Я нашел этот расширенный DataGrid для Silverlight, который, однако, сделает трюк.

Extended DataGrid

0

Похоже, что DataGridColumn.IsReadOnly Property является DependencyProperty, поэтому его следует связывать. Измените свой XAML на IsReadOnly="{Binding IsNotLocalID}" (обратите внимание на добавленные кавычки) и посмотрите, что произойдет. Вы получаете какие-либо сбои в окне вывода Visual Studio?

+0

Ах, я на Silverlight 3, не Silverlight 4. –

+1

DataGrid довольно старой кодовый, как идет Silverlight, и многие из его свойств не являются свойствами зависимостей. В частности, IsReadOnly в базовом классе DataGridBoundColumn не является свойством зависимостей. У меня это есть на хорошем уровне у менеджера программ для DataGrid. Я также сразу спросил его, когда кодовая база будет обновлена, и он отказался от комментариев. –

+0

Питер, у меня точно такая же проблема. IsReadOnly определенно не является зависимостью. Я пытаюсь создать свой собственный метод обхода и все равно не работаю. У вас есть рабочий пример для этого? благодаря – Houman

Смежные вопросы