Как сделать ячейку в таблице данных доступной только для чтения на основе содержимого другой ячейки в SL4? - PullRequest
0 голосов
/ 13 февраля 2011

У меня есть два столбца, второй столбец зависит от содержимого первого столбца.По умолчанию вторые столбцы доступны только для чтения.Когда я ввожу какое-то допустимое значение, я хочу, чтобы второй столбец стал редактируемым.Чтобы добиться этого, я создал шаблон ячейки и шаблон редактирования ячейки во втором столбце, где фон и только чтение, привязанное к первому столбцу.При загрузке первый столбец является нулевым, поэтому мои вторые столбцы отображаются правильно только для чтения.Ниже приведен шаблон ячейки для второго столбца, где цвет фона задается на основе первого столбца.

 <DataTemplate>
   <Grid>
     <Border Background="{Binding FristColumn,Converter={StaticResource ColorConverter}}"/>
     <TextBlock Text="{Binding SecondColumn, Converter={StaticResource NumberFormatter}}" HorizontalAlignment="Stretch"  VerticalAlignment="Center" Margin="0"/>
   </Grid>
  </DataTemplate>

Ниже приведен шаблон редактирования ячейки для второго столбца, чтобы сделать его редактируемым

<DataTemplate>
  <Grid>
    <TextBox Text="{Binding SecondColumn, Mode=TwoWay, Converter={StaticResource NumberFormatter}}" Margin="0" HorizontalAlignment="Right"  IsReadOnly="{Binding FirstColumn, Converter={StaticResource readOnlyConverter}, ConverterParameter=FirstColumn}" Background="{Binding Depend,Converter={StaticResource ColorConverter}, ConverterParameter=FirstColumn}" />
  </Grid>
</DataTemplate>

При наличии этих двух значений при вводе действительного значения в первом столбце я ожидал, что цвет второго столбца изменится, но это не так.Но если я дважды щелкну по ячейке, то она будет вести себя правильно, основываясь на первой ячейке.Есть что-то, чего мне не хватает?

1 Ответ

0 голосов
/ 15 февраля 2011

Проблема заключалась в том, что в коллекции объектов не было реализовано INotifyPropertyChanged.После реализации INotifyPropertyChanged цвета и ячейка становятся редактируемыми и недоступными для редактирования на основе конвертера.Надеюсь, что это помогает другим.

...