DataGridView соединил наследованный UserControl

Массивы недостаточно велики, чтобы хранить множество рейтингов

blockquote>

Проблема не в массивах, а в том, что документы имеют ограничения. Таким образом, существуют некоторые ограничения в отношении объема данных, которые вы можете поместить в документ. В соответствии с официальной документацией относительно использования и ограничений :

Максимальный размер документа: 1 МБ (1 048 576 байт)

blockquote>

. видите, вы ограничены 1 МБ данных в одном документе. Когда мы говорим о сохранении текста, вы можете хранить его в значительной степени, но по мере увеличения массива будьте осторожны с этим ограничением.

Согласно официальной документации, касающейся данных моделирования в Cloud Firestore :

Cloud Firestore оптимизирован для хранения больших коллекций небольших документов.

blockquote>

Поэтому пытаться осколить коллекцию, заполняя документы один за другим, не очень хорошая идея.

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

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

11
задан Rory Becker 21 October 2008 в 14:23
поделиться

2 ответа

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

Были подобные проблемы, зарегистрированные с другими средствами управления формой, например, flowlayoutpanel.

Я не могу найти способ вызвать визуальное наследование.

Вот официальный ответ на подключении: "Для этого конкретного выпуска DataGridView не был разработан, чтобы использоваться в визуальном intheritance. Мы будем иметь в виду Ваше предложение, когда мы запланируем наш будущий выпуск", Который является от 26.05.2006.

Обновление: найденный этим сообщением в блоге, которое может иметь ответ

Править: Я не мог проверить требования сообщения в блоге. Похож могло бы быть последним по этой проблеме

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

12
ответ дан 3 December 2019 в 04:34
поделиться

Я оставил ответ, но перечитал Ваш вопрос и решил удалить его.

Что о DataGridView Вы пытаетесь изменить в наследованном управлении? Это - столбцы? Я смог сделать это путем установки защищенного метода в моем основном UserControl и передачи набора столбцов сетки в него, как это:

// in base UserControl
public BaseGridDetail()
{
    InitializeComponent();

    InitGridColumns(dataGridView1.Columns);
}

protected virtual void InitGridColumns(DataGridViewColumnCollection columns)
{
    columns.Clear();
}

Теперь Ваше полученное управление может просто переопределить тот метод, как так:

// in InheritedDetail
protected override void InitGridColumns(DataGridViewColumnCollection columns)
{
    base.InitGridColumns(columns);
    // add my own custom columns
}
1
ответ дан 3 December 2019 в 04:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: