Раскадровка WPF начинается с начала приложения [дубликат]

Как в официальной документации :

Хотя Cloud Firestore может хранить массивы, it does not support запрашивать элементы массива или обновлять отдельные элементы массива.

Если вы хотите получить весь массив papers, вам нужно выполнить итерацию по Map следующим образом:

Map map = documentSnapshot.getData();
for (Map.Entry entry : map.entrySet()) {
    if (entry.getKey().equals("Phonenumbers")) {
        Log.d("TAG", entry.getValue().toString());
    }
}

Но обратите внимание, что даже если объект Phonenumbers сохраненный в базе данных как массив, entry.getValue() возвращает ArrayList, а не array.

Вам нужно использовать индексы только при запросе своей базы данных с использованием более одного свойства. Но это не ваш случай.

Лучше будет выглядеть эта альтернативная структура базы данных, где каждый номер телефона является ключом на карте, и все значения истинны:

Phonenumbers: {
    "987654321": true,
    "123456789": true,
    "234567890": true
}

Редактировать 13 августа 2018 года:

Согласно обновленной документации относительно членства array , теперь можно фильтровать данные на основе значений массива с использованием метода whereArrayContains(). Простым примером может быть:

CollectionReference citiesRef = db.collection("cities");
citiesRef.whereArrayContains("regions", "west_coast");

Этот запрос возвращает каждый городской документ, где поле регионов представляет собой массив, содержащий west_coast. Если массив имеет несколько экземпляров запрашиваемого значения, документ включается в результаты только один раз.

blockquote>

2
задан saeid ezzati 13 May 2014 в 14:22
поделиться

3 ответа

Вы можете поместить его в словарь ресурсов и ссылаться на него из кода. В качестве альтернативы вы можете использовать триггер события для запуска раскадровки в XAML:

<UserControl.Resources>
    <Storyboard x:Key="TheStoryboard">
        <DoubleAnimation Storyboard.TargetProperty="Height"
                         To="500" Duration="0:0:0.5"
                         Storyboard.TargetName="X" /> <!-- no need to specify From -->
    </Storyboard>
</UserControl.Resources>

Чтобы начать с кода:

((Storyboard)this.Resources["TheStoryboard"]).Begin(this);

Чтобы начать с XAML:

<UserControl.Triggers>
    <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="TheButton">
        <BeginStoryboard Storyboard="{StaticResource TheStoryboard}"/>
    </EventTrigger>
</UserControl.Triggers>

Если кнопке присвоено имя:

 <Button Name="TheButton" Content="Start" />
7
ответ дан Eli Arbel 23 August 2018 в 19:41
поделиться
Storyboard sb = (Storyboard)btnPause.FindResource("PauseStoryboard");
//to start
sb.Begin(btnPause, true);
//to stop
sb.Stop(btnPause);

<Button x:Name="btnPause" Width="28" Background="LightCyan" Click="btnPause_Click">
    <Image Source="Images\pause.png"></Image>
    <Button.Resources>
        <Storyboard x:Key="PauseStoryboard">
            <ColorAnimation  To="Yellow" Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" Duration="0:0:1" RepeatBehavior="Forever" AutoReverse="True"/>
        </Storyboard>
    </Button.Resources>
</Button>
0
ответ дан Manuel Marini 23 August 2018 в 19:41
поделиться
  1. Объявите раскадровку как ресурс в вашем окне.
  2. Дайте ему ключ.
    <Window.Resources>
        <Storyboard x:Key="test">
             ...
        </Storyboard>
    </Window.Resources>
    
  3. Найти ресурс:
    Storyboard sb = this.FindResource("test") as Storyboard;
    
  4. Использовать его:
    sb.Begin();
    
4
ответ дан Patrick Hofman 23 August 2018 в 19:41
поделиться
Другие вопросы по тегам:

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