Как вызвать событие PreparingCellForEdit с помощью нажатия кнопки (Изменить) в Silver light 4 - PullRequest
1 голос
/ 06 сентября 2011

У меня есть сетка данных в Silverlight 4 с 3 столбцами и столбцом, который содержит кнопку «Изменить / Применить».

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

После нажатия кнопки «Редактировать» в любой строке. Мне нужно изменить текстовый блок (это мой шаблон ячейки ) в одном из строк на ComboBox (Это мой шаблон редактирования ячейки шаблон)

Вопрос в том, как мне сделать это, нажав кнопку «Редактировать» в каждой строке, а не дважды щелкнув по строке.

Спасибо, Виджей

Ответы [ 2 ]

1 голос
/ 16 сентября 2011

После небольшого поиска / попытки я смог переключаться между режимами отображения и редактирования нажатием кнопки (кнопка размещена в каждой строке).

Ниже приведен пример кода, который облегчает это переключение для одного из ячеек в сетке, который использует два логических свойства ShowDefaultTemplate и ShowEditableTemplate , VisibilityConverter преобразует логические значения в соответствующие параметры видимости (видимые или свернутые).

<DataTemplate>
           <StackPanel Orientation="Horizontal">
                     <TextBlock Text="{Binding XXX}" HorizontalAlignment="Center" VerticalAlignment="Center"
                                               Visibility="{Binding ShowDefaultTemplate, Converter={StaticResource visibilityConverter}}" />
                     <ComboBox HorizontalAlignment="Left"  MinHeight="24" Width="100" 


                                              ItemsSource="{Binding Source, Source={StaticResource Provider}}" 
                                              Visibility="{Binding ShowEditableTemplate , Converter={StaticResource visibilityConverter}}" 
                                              SelectedItem = "{Binding SelctedItem,Mode=TwoWay}" />

            </StackPanel>
 </DataTemplate>

Спасибо, Виджей

1 голос
/ 06 сентября 2011
  • 1-й способ

    Поместите текстовые блоки сверху комбинированных блоков (комбинированные списки со свернутой видимостью).При редактировании Переключение видимости между элементами управления (комбинированный - видимый / текстовый блок - свернутый) и привязка свойства текста из текстового блока к выбранному значению из комбинации.

  • 2-йway

    Установите только поля со списком, для свойства IsReadOnly которого установлено значение True.При редактировании установите для IsReadOnly значение false, а при сохранении установите для него значение true. *

  • 3-й способ

    Сделайте сетку данных доступной только для чтения ипривязать форму данных к нему.Форма данных содержит кнопки редактирования / сохранения / отмены.

    Если вам нужен пример, просто дайте мне знать, и я напишу его как можно скорее.

    Не уверен, если этоэто то, что вы ожидали.Если нет, пожалуйста, просто проигнорируйте это.Возможно, я неправильно понял вопрос.

  • Другой ответ

    Другой ответ будет заключаться в использовании DelegateCommand, привязанного к свойству Command объектакнопка Изменить, которая может содержать параметр (номер строки).Это если вы используете шаблон MVVM.А в ViewModel вы можете редактировать выбранную строку.

...