Вместо пробела Entry / Xamarin.Forms Android Emulator
В моем проекте с Xamarin.Forms (V2.5) есть особый случай.
Я получил вложенную сетку с кнопкой и двумя записями (также вложенными в рамку). Кнопка привязана к моей виртуальной машине и устанавливает видимость этих записей (если true, скрыть одну и - поверх конвертера - всплыть другую). Текстовые свойства записей привязаны к общедоступному строковому свойству в моей виртуальной машине в режиме =twoway.
Если я коснусь этого "переключателя" (кнопки), в UWP все работает нормально.
Но на Android-эмуляторе записи только белые и без каких-либо функций. Пожалуйста, посмотрите на эти скриншоты: Скриншот 1 Скриншот 2, чтобы увидеть разницу.
Я не могу объяснить себе это поведение. Конвертер делает свою работу и переводит значение в виртуальную машину.
А вот код XAML для вложенной сетки:
<Grid x:Name="InnerGridSparrateSwitch" Grid.Row="3" Grid.Column="1" IsVisible="{Binding IsFH}"
HorizontalOptions="Fill">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1.5*"/>
</Grid.ColumnDefinitions>
<Button Text="{Binding Spareingabe}" Style="{StaticResource OnPlatformButton}"
Command="{Binding SwitchSpareingabe}"
Grid.Row="0" Grid.Column="0"
FontAttributes="Bold"
BackgroundColor="{DynamicResource AccentColor}"/>
<Frame Style="{StaticResource RunderRahmen}"
Grid.Row="0" Grid.Column="1">
<Entry x:Name="Eingabe_FHRate"
IsVisible="{Binding EingabeSparRate}"
Style="{StaticResource Eingabefeld_small}"
Text="{Binding SparrateView, Mode=TwoWay}"
IsEnabled="{Binding AutoCalcActive, Converter={StaticResource IsBusyConverter}}"/>
</Frame>
<Frame Style="{StaticResource RunderRahmen}"
Grid.Row="0" Grid.Column="1">
<Entry x:Name="Eingabe_SparProzent"
IsVisible="{Binding EingabeSparRate, Converter={StaticResource IsBusyConverter}}"
Style="{StaticResource Eingabefeld_small}"
Text="{Binding TilgungssatzView, Mode=TwoWay}"/>
</Frame>
</Grid>
<!--#endregion-->
<!--#region Switch Tilgungsrate/Promille/€-->
<Grid x:Name="InnerGridTilgungsrateSwitch" Grid.Row="4" Grid.Column="1" IsVisible="{Binding IsFH}"
HorizontalOptions="Fill">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1.5*"/>
</Grid.ColumnDefinitions>
<Button Text="{Binding TBEingabe}" Style="{StaticResource OnPlatformButton}"
Command="{Binding SwitchTBEingabe}"
Grid.Row="0" Grid.Column="0"
FontAttributes="Bold"
BackgroundColor="{DynamicResource AccentColor}"/>
<Frame Style="{StaticResource RunderRahmen}"
Grid.Row="0" Grid.Column="1">
<Entry x:Name="Eingabe_TBRate"
IsVisible="{Binding EingabeTilgungsRate}"
Style="{StaticResource Eingabefeld_small}"
Text="{Binding TBView, Mode=TwoWay}"
Placeholder="Tilgungsrate"
IsEnabled="{Binding AutoCalcActive, Converter={StaticResource IsBusyConverter}}"/>
</Frame>
<Frame Style="{StaticResource RunderRahmen}"
Grid.Row="0" Grid.Column="1">
<Entry x:Name="Eingabe_TBPromille"
IsVisible="{Binding EingabeTilgungsRate, Converter={StaticResource IsBusyConverter}}"
Style="{StaticResource Eingabefeld_small}"
Text="{Binding TBSatzView}"/>
</Frame>
</Grid>
Большое спасибо!
1 ответ
Наконец то понял! Я поместил Свойство IsVisible в РЕБЕНКА (Вход) вместо этого в РОДИТЕЛЯ (Кадр). Поскольку я установил свойство "padding" моего стиля рамки OnPlatform ("RunderRahmen") в 0, я не смог увидеть никаких проблем (белая рамка без записи на Android) на UWP.
НЕПРАВИЛЬНО
<Frame Style="{StaticResource RunderRahmen}"
Grid.Row="0" Grid.Column="1">
<Entry x:Name="Eingabe_SparProzent"
IsVisible="{Binding EingabeSparRate, Converter={StaticResource IsBusyConverter}}"
Style="{StaticResource Eingabefeld_small}"
Text="{Binding TilgungssatzView, Mode=TwoWay}"/>
</Frame>
ПРАВО
<Frame Style="{StaticResource RunderRahmen}"
Grid.Row="0" Grid.Column="1"
IsVisible="{Binding EingabeSparRate, Converter={StaticResource IsBusyConverter}}">
<Entry x:Name="Eingabe_SparProzent"
Style="{StaticResource Eingabefeld_small}"
Text="{Binding TilgungssatzView, Mode=TwoWay}"/>
</Frame>