В соответствии с документацией по индексированию :
Firebase позволяет выполнять специальные запросы к вашим данным с использованием произвольного дочернего ключа. Если вы заранее знаете, какими будут ваши индексы, вы можете определить их с помощью правила .indexOn в ваших Правилах базы данных Firebase Realtime для повышения производительности запросов.
blockquote>База данных реального времени не знает заранее всех видов запросов, которые вы, возможно, захотите выполнить. Он заранее создает некоторые индексы, но вам нужно сообщить об этом, когда вы хотите запросить вложенные дочерние элементы с помощью orderByChild orderByValue.
Клиент не отправляет ничего другого. Вместо этого сервер теперь снабжен индексом, который может эффективно выполнять запрос, не заставляя клиента получать все данные и выполнять фильтрацию и упорядочение самостоятельно.
В XAML, наборе ItemsSource="{Binding}"
и (в коде позади) устанавливает DataContext
кому: myAssembly.PossibleTypes
.
Вы также можете установить привязку в xaml, а не в коде программной части (мы избегаем кода позади на наших страницах xaml, где это возможно). Я предполагаю, что myAssembly - это свойство вашего кода программной части для элемента управления и является экземпляром вашего класса MyAssembly ...
<UserControl
x:Class="MyNamespace.MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DataContext="{Binding}">
<ComboBox
Width="200"
ItemsSource="{Binding Path=myAssembly.PossibleTypes}"
SelectedValuePath="Type.FullName"
SelectedItem="{Binding Path=Type}"
Name="cmoBox" />
</UserControl>
Это может быть просто личным предпочтением, но я думаю, что это ' Лучше иметь привязки данных в xaml, поскольку это упрощает просмотр того, к чему привязан каждый элемент управления, без необходимости разгребать код программной части. Кроме того, если вы хотите обратиться к своему ComboBox из кода, вам следует назначить ему свойство x: Name в xaml, а не просто Name.
Я согласен: привязки должны быть в XAML. Я поставил ... проверку ... вообще ничего в коде, когда-либо. Источники данных - это все повторно используемые «ресурсы».
(ну ладно, конструктор кода программной части вызывает InitializeComponent ()).