Как предотвратить обновление данных сеткой данных? - PullRequest
3 голосов
/ 27 мая 2011

Вот сценарий:

  • Две таблицы данных набора инструментов, бок о бок
  • Сетка A доступна только для чтения и не может быть изменена
  • Содержимое сетки B можетизменить и сохранить с помощью кнопки сохранения под ним

Мне нужно, чтобы таблица А оставалась неизменной до тех пор, пока пользователь не нажмет кнопку сохранения, независимо от того, какие изменения может иметь или не иметь сетка В.Когда я связываюсь со свойством ниже, обе сетки меняются, когда меняется сетка B.Я хочу избежать этого.

Какой лучший способ сделать это?Обе сетки в настоящее время привязаны к следующему свойству:

    public EntitySet<SomeEntity> SomeEntities
    {
        get { return _entity; }
        set
        {
            if (_entity != value)
            {
                _entity= value;
                OnPropertyChanged("SomePropertyChanged");
            }
        }
    }

Ответы [ 4 ]

2 голосов
/ 01 июня 2011

Возможно, вместо того, чтобы полностью отключить коллекцию SomeEntities, к которой привязан Grid, возможно, используйте ObservableCollection, а затем обновите для каждого элемента в ObservableCollection. Затем используйте Mode = OneTime, о котором упоминает Дерек.

2 голосов
/ 27 мая 2011

Установите привязку для сетки A к OneTime.

т.е.

Text="{Binding Path=Age, Mode=OneTime}" 
0 голосов
/ 07 июня 2011

Работаем с помощью DataGridTemplateColumn с привязкой OneTime. Например,

<sdk:DataGridTemplateColumn>
    <sdk:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
             <TextBlock Text="{Binding Enabled, Mode=OneTime}"></TextBlock> 
        </DataTemplate>
    </sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
0 голосов
/ 06 июня 2011

Вы можете создать два EntitySet, по одному для каждой DataGrid. После сохранения необходимо обновить набор, привязанный к DataGrid только для чтения.

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