У меня есть кнопка, которая удаляет и добавляет вещи. Если я нажму его один раз, это изменит вещи, и это будет работать нормально, но если я нажму это снова и хочу, чтобы мои метки вернулись в прежнее состояние, прежде чем я получу исключение.
вот мой xaml
<ContentPage.ToolbarItems>
<ToolbarItem x:Name="btnChangePositions" Priority="0" Clicked="ExchangeEnglishAndCzechVersion"/>
<ToolbarItem Clicked="DictionaryInfo_Clicked">
<ToolbarItem.IconImageSource >
<FontImageSource Glyph="{ x:Static local:GrialIconsFont.HelpCircle}"
Size="20"
FontFamily="{StaticResource GrialIconsFill}"/>
</ToolbarItem.IconImageSource>
</ToolbarItem>
<ToolbarItem Clicked="Listening_Clicked">
<ToolbarItem.IconImageSource >
<FontImageSource Glyph="{ x:Static local:GrialIconsFont.Headphones}"
Size="20"
FontFamily="{StaticResource GrialIconsFill}"
/>
</ToolbarItem.IconImageSource>
</ToolbarItem>
<ToolbarItem Clicked="Lock_Clicked">
<ToolbarItem.IconImageSource >
<FontImageSource Glyph="{ x:Static local:MaterialCommunityIconsFont.Lock}"
x:Name="lockScreenWithFrame"
FontFamily="{StaticResource MaterialCommunityIcons}"
Size="20"/>
</ToolbarItem.IconImageSource>
</ToolbarItem>
</ContentPage.ToolbarItems>
<Grid HorizontalOptions="Fill" VerticalOptions="FillAndExpand" Padding="0" x:Name="mainGrid">
<Grid BackgroundColor="{ DynamicResource MainWrapperBackgroundColor }"
RowSpacing="0">
<Grid.RowDefinitions>
<RowDefinition
Height="27*" />
<RowDefinition
Height="27*" />
<RowDefinition
Height="12*" />
<RowDefinition
Height="Auto" />
<!--<RowDefinition
Height="7*" />-->
</Grid.RowDefinitions>
<Grid Grid.Row="0" Padding="5" x:Name="defaultEnglishGrid" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<Grid ><!--Margin="5"-->
<!-- CARD ONE -->
<grial:CardView x:Name="CardViewNameENg"
Style="{ StaticResource ResponsiveLandscapeMarginStyle }"
VerticalOptions="FillAndExpand"
CornerRadius="10"
Padding="5">
<!-- Text -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition
Width="*" />
<ColumnDefinition
Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="150" />
</Grid.RowDefinitions>
<Grid Grid.Column="0" HeightRequest="150" Grid.Row="0">
<ScrollView>
<controls:ExtendedWebView x:Name="nameEng" Opacity="1" IsVisible="True" HeightRequest="150"/>
</ScrollView>
</Grid>
<!-- Column button Play-->
<Grid Padding ="5,0,0,0"
Grid.Row="0"
Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"></RowDefinition>
<RowDefinition Height="0.5*"></RowDefinition>
</Grid.RowDefinitions>
<Label x:Name="buttonPlay"
VerticalTextAlignment="Start"
HorizontalTextAlignment="End"
Text="{ x:Static local:GrialIconsFont.Volume2 }"
FontFamily="{ StaticResource IconsFontFamily }"
TextColor="{ DynamicResource AccentColor }">
<Label.GestureRecognizers >
<TapGestureRecognizer
Tapped="StartOrStopPlaying">
</TapGestureRecognizer>
</Label.GestureRecognizers>
<Label.FontSize>
<OnIdiom
x:TypeArguments="x:Double"
Phone="25"
Tablet="30" />
</Label.FontSize>
</Label>
<Label x:Name="buttonPause"
VerticalTextAlignment="Start"
HorizontalTextAlignment="End" IsVisible="False"
Text="{ x:Static local:GrialIconsFont.AudioPause }"
FontFamily="{ StaticResource IconsFontFamily }"
TextColor="{ DynamicResource AccentColor }">
<Label.GestureRecognizers >
<TapGestureRecognizer
Tapped="StartOrStopPlaying">
</TapGestureRecognizer>
</Label.GestureRecognizers>
<Label.FontSize>
<OnIdiom
x:TypeArguments="x:Double"
Phone="25"
Tablet="30" />
</Label.FontSize>
</Label>
</Grid>
<!-- Column Button Plus -->
<Grid Padding ="5,0,0,0"
Grid.Row="0"
Grid.Column="1"
VerticalOptions="End">
<Label x:Name="btnMakeLargerName"
VerticalTextAlignment="End"
HorizontalTextAlignment="End"
Text="{ x:Static local:GrialIconsFont.ZoomIn }"
FontFamily="{ StaticResource IconsFontFamily }"
TextColor="{ DynamicResource AccentColor }">
<Label.FontSize>
<OnIdiom
x:TypeArguments="x:Double"
Phone="25"
Tablet="30" />
</Label.FontSize>
</Label>
</Grid>
</Grid>
</grial:CardView>
</Grid>
</Grid>
<Grid Grid.Row="1" Padding="5" x:Name="parentOfDefaultCzechGrid" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<Grid x:Name="defaultCzechGrid" >
<!--Margin="5"-->
<!-- CARD TWO -->
<grial:CardView x:Name="CardViewCzech"
Style="{ StaticResource ResponsiveLandscapeMarginStyle }"
CornerRadius="10" VerticalOptions="FillAndExpand"
Padding="0" >
<!-- Text -->
<Grid RowSpacing ="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.8*"></ColumnDefinition>
<ColumnDefinition Width="0.2*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="150" />
</Grid.RowDefinitions>
<ScrollView>
<controls:ExtendedWebView x:Name="explanation" VerticalOptions="Start" HorizontalOptions="Start" Opacity="1" HeightRequest="150"/>
</ScrollView>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"></RowDefinition>
<RowDefinition Height="0.5*"></RowDefinition>
<RowDefinition Height="0.1*"></RowDefinition>
<RowDefinition Height="0.5*"></RowDefinition>
</Grid.RowDefinitions>
<!-- Column button Eye-->
<Label x:Name="btnVisual"
Grid.Row="0"
VerticalTextAlignment="Start"
HorizontalTextAlignment="End"
Text="{ x:Static local:GrialIconsFont.Eye }"
FontFamily="{ StaticResource IconsFontFamily }"
TextColor="{ DynamicResource AccentColor }">
<Label.GestureRecognizers >
<TapGestureRecognizer
Tapped="HideLabels">
</TapGestureRecognizer>
</Label.GestureRecognizers>
<Label.FontSize>
<OnIdiom
x:TypeArguments="x:Double"
Phone="25"
Tablet="30" />
</Label.FontSize>
</Label>
<!-- Column Button Trash -->
<Label x:Name="btnBin" Grid.Row="1"
VerticalTextAlignment="Center"
HorizontalTextAlignment="End"
Text="{ x:Static local:IoniconsFont.IosTrash }"
FontFamily="{ StaticResource Ionicons }"
TextColor="{ DynamicResource AccentColor }">
<Label.GestureRecognizers >
<TapGestureRecognizer
Tapped="RemoveWordFromUserDictionary">
</TapGestureRecognizer>
</Label.GestureRecognizers>
<Label.FontSize>
<OnIdiom
x:TypeArguments="x:Double"
Phone="25"
Tablet="30" />
</Label.FontSize>
</Label>
<!-- Column Button Plus -->
<Label Grid.Row="3" x:Name="btnMakeLarger"
VerticalTextAlignment="End"
HorizontalTextAlignment="End"
Text="{ x:Static local:GrialIconsFont.ZoomIn }"
FontFamily="{ StaticResource IconsFontFamily }"
TextColor="{ DynamicResource AccentColor }">
<Label.FontSize>
<OnIdiom
x:TypeArguments="x:Double"
Phone="25"
Tablet="30" />
</Label.FontSize>
</Label>
</Grid>
</Grid>
</grial:CardView>
</Grid>
</Grid>
<!-- CARD Three -->
<Grid Grid.Row="2" Padding="5,0,5,0" RowSpacing="10" x:Name="gridButtons" >
<Grid>
<grial:CardView
Style="{ StaticResource ResponsiveLandscapeMarginStyle }"
HeightRequest="100" HorizontalOptions="Fill"
CornerRadius="10"
Padding="0,0,0,3">
<Grid Padding="0"
VerticalOptions="Start"
HorizontalOptions="CenterAndExpand">
<Grid.RowDefinitions>
<RowDefinition
Height="Auto" />
<RowDefinition
Height="Auto" />
</Grid.RowDefinitions>
<!-- BUTTONS GRID -->
<Grid Margin="0"
ColumnSpacing="10"
HorizontalOptions="CenterAndExpand"
VerticalOptions="StartAndExpand">
<!-- Rating Button Grid -->
<Grid Grid.Row="0" ColumnSpacing="15" Padding="0,2,0,0">
<!-- One -->
<Button x:Name="firstRateBtn" Grid.Column="0" HorizontalOptions="Center" Text="1" Style="{ StaticResource CircleActionButtonFlatStyle }" VerticalOptions="Start" HeightRequest="50" CornerRadius="25" WidthRequest="50" Clicked="RateOneAndShowOtherword"/>
<!-- Two -->
<Button x:Name="secondRateBtn" Grid.Column="1" HorizontalOptions="Center" Text="2" Style="{ StaticResource CircleActionButtonFlatStyle }" VerticalOptions="Start" HeightRequest="50" CornerRadius="25" WidthRequest="50" Clicked="RateTwoAndShowOtherword" />
<!-- Three-->
<Button x:Name="thirdRateBtn" Grid.Column="2" HorizontalOptions="Center" Text="3" Style="{ StaticResource CircleActionButtonFlatStyle }" VerticalOptions="Start" HeightRequest="50" CornerRadius="25" WidthRequest="50" Clicked="RateThreeAndShowOtherword" />
<!-- Four -->
<Button x:Name="fourthRateBtn" Grid.Column="3" HorizontalOptions="Center" Text="4" Style="{ StaticResource CircleActionButtonFlatStyle }" VerticalOptions="Start" HeightRequest="50" CornerRadius="25" WidthRequest="50" Clicked="RateFourAndShowOtherword"/>
<!-- Five -->
<Button x:Name="fifthRateBtn" Grid.Column="4" HorizontalOptions="Center" Text="5" Style="{ StaticResource CircleActionButtonFlatStyle }" VerticalOptions="Start" HeightRequest="50" CornerRadius="25" WidthRequest="50" Clicked="RateFiveAndShowOtherword" />
</Grid>
</Grid>
<!-- Labels -->
<Grid Grid.Row="1" HorizontalOptions="FillAndExpand" VerticalOptions="EndAndExpand" Padding="0,2,0,0">
<!--Text Wrong-->
<Label Text="{ grial:Translate A_LabelCorrectWrong }" FontSize="14" Style="{ StaticResource LabelBoldStyle }" TextColor="{ DynamicResource CircleActionButtonFlatTextColor }" VerticalOptions="End" HorizontalOptions="Start"
IsVisible="{grial:OnOrientationBool
Default='true',
LandscapePhone='false'}" />
</Grid>
</Grid>
</grial:CardView>
</Grid>
</Grid>
<!-- CARD Four -->
<Grid Grid.Row="3" Padding="5,5,5,5" x:Name="gridDailyAmount">
<Grid >
<grial:CardView
Style="{ StaticResource ResponsiveLandscapeMarginStyle }"
VerticalOptions="Fill"
CornerRadius="10"
Padding="0">
<Grid Margin="0"
ColumnSpacing="0"
Padding="{ grial:OnOrientationThickness Default='20', LandscapePhone='20,8'
}">
<Grid.RowDefinitions>
<RowDefinition
Height="*" />
<RowDefinition
Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!--Text Daily dose-->
<Label Grid.Row="0" Margin="0" Grid.Column ="0" Text="Dnešní dávka" FontSize="15" TextColor="{ DynamicResource CircleActionButtonFlatTextColor }" VerticalOptions="Start" HorizontalOptions="Start"
IsVisible="{grial:OnOrientationBool
Default='true',
LandscapePhone='false'}" />
<Label Grid.Row="0" Margin="0" Grid.Column ="1" x:Name="amountOfWordForToday" FontSize="15" TextColor="{ DynamicResource CircleActionButtonFlatTextColor }" VerticalOptions="Start" HorizontalOptions="End"
IsVisible="{grial:OnOrientationBool
Default='true',
LandscapePhone='false'}" />
<!--Text Amount of words-->
<Label Grid.Row="1" Grid.Column="0" Margin="0" Text="Slovíček ve slovníku" FontSize="15" TextColor="{ DynamicResource CircleActionButtonFlatTextColor }" VerticalOptions="End" HorizontalOptions="StartAndExpand"
IsVisible="{grial:OnOrientationBool
Default='true',
LandscapePhone='false'}" />
<Label Grid.Row="1" Margin="0" Grid.Column="1" x:Name="amountOfWordsInDictionary" FontSize="15" TextColor="{ DynamicResource CircleActionButtonFlatTextColor }" VerticalOptions="End" HorizontalOptions="End"
IsVisible="{grial:OnOrientationBool
Default='true',
LandscapePhone='false'}" />
</Grid>
</grial:CardView>
</Grid>
</Grid>
</Grid>
</Grid>
</ContentPage>
private void ExchangeEnglishAndCzechVersion(object sender, EventArgs e)
{
CardViewCzech.Children.Remove(explanation);
CardViewCzech.Children.Add(nameEng);
CardViewNameENg.Children.Remove(nameEng);
CardViewNameENg.Children.Add(explanation);
CardViewCzech.Children.Add(btnVisual);
CardViewCzech.Children.Add(btnMakeLarger);
CardViewCzech.Children.Add(btnBin);
CardViewNameENg.Children.Add(buttonPlay);
CardViewNameENg.Children.Add(btnMakeLargerName);
btnChangePositions.Text = "EN/CZ";
}
Метка на кнопке меняется, и как только я нажимаю ее снова, мне нужно содержимое go назад, как прежде. Но я получаю исключение прямо во второй строке после попытки go вернуть System.InvalidOperationException: Cannot change ObservableCollection during a CollectionChanged event.