在发布属性中找不到Xamarin.Forms绑定
让我发疯的问题)人们的帮助( 有一个简单的Xaml:在发布属性中找不到Xamarin.Forms绑定,xamarin.forms,Xamarin.forms,让我发疯的问题)人们的帮助( 有一个简单的Xaml: <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:Kitchen
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Kitchener"
x:Class="Kitchener.MainPage"
xmlns:al="clr-namespace:AiForms.Layouts;assembly=AiForms.Layouts"
xmlns:viewModel="clr-namespace:Kitchener.ViewModels;assembly=Kitchener"
x:Name="_this">
<ContentPage.BindingContext>
<viewModel:KitchenerMainPageVm />
</ContentPage.BindingContext>
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="10" />
<RowDefinition Height="2*" />
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Text="{Binding MessageText}"
TextColor="{Binding MessageTextColor}"
IsVisible="{Binding MessageTextVisible}"
HorizontalOptions="Center"
VerticalOptions="Center" Grid.Row="1" FontSize="30" Margin="0,20,0,20" />
<StackLayout Grid.Row="2" Orientation="Horizontal">
<Button Text="#" Command="{Binding ShowHideSettings}" WidthRequest="40"/>
<StackLayout IsVisible="{Binding SettingIsVisible}" Orientation="Horizontal" HorizontalOptions="FillAndExpand">
<Entry Placeholder="Url Bullet Server"
FontSize="15"
Text="{Binding BaseUrl, Mode=TwoWay}"
Completed="BaseUrl_OnCompleted"
HorizontalOptions="FillAndExpand"/>
</StackLayout>
</StackLayout>
</Grid>
</ContentPage>
在调试程序集模式下,一切正常,但一旦我在发布程序集模式下收集了所有这些工作,我的一些绑定和团队就会崩溃
部署时看到的内容:
[0:]在上找不到绑定:“MessageTextVisible”属性
“Kitchener.ViewModels.KitchenerMainPageVm”,目标属性:
'Xamarin.Forms.Label.IsVisible'[0:]绑定:'MessageTextColor'
在“Kitchener.ViewModels.KitchenerMainPageVm”上找不到属性,
目标属性:“Xamarin.Forms.Label.TextColor”[0:]绑定:'
MessageText“在上找不到属性”
Kitchener.ViewModels.KitchenerMainPageVm',目标属性:'
Xamarin.Forms.Label.Text'
有绑定SettingIsVisible
,BaseUrl
,ButtonStackVisible
其余的都不起作用,不管我做什么…,同样的命令也不起作用
我已经将它重新组装了一百次,尝试在真实的设备(Android 7.1)上运行,在模拟器上运行,但没有任何帮助
我使用库程序集Android项目的VisualStudio 2017参数:编译器8.1的SDK版本。我解决了链接器中的问题。有两种解决方案:要么在此完全禁用joxi.ru/vAW339ei1vX6bA
或者使用属性[Android.Runtime.Preserve(AllMembers=true)]检查您的链接器设置-比较Release和DebugDebug:,Release:我在这里看不到任何显著差异…确保您查看的是平台项目上的链接器设置,而不是库
public class KitchenerMainPageVm : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _baseUrl;
public string BaseUrl
{
set
{
_baseUrl = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("BaseUrl"));
Settings.BaseUrlBulletHttpServer = _baseUrl;
}
get => _baseUrl;
}
private string _messageText = "Соединение...";
public string MessageText
{
set
{
_messageText = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(MessageText)));
}
get
{
return _messageText;
}
}
private bool _messageTextVisible = false;
public bool MessageTextVisible
{
set
{
_messageTextVisible = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("MessageTextVisible"));
}
get
{
return _messageTextVisible;
}
}
private Color _messageTextColor = Color.AliceBlue;
public Color MessageTextColor
{
set
{
_messageTextColor = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("MessageTextColor"));
}
get
{
return _messageTextColor;
}
}
private bool _buttonStackVisible = true;
public bool ButtonStackVisible
{
set
{
_buttonStackVisible = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("ButtonStackVisible"));
}
get
{
return _buttonStackVisible;
}
}
private bool _settingIsVisible;
public bool SettingIsVisible
{
set
{
_settingIsVisible = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SettingIsVisible"));
}
get
{
return _settingIsVisible;
}
}
public ICommand ShowHideSettings { protected set; get; }
private void _showHideSettings()
{
SettingIsVisible = !SettingIsVisible;
}
public KitchenerMainPageVm()
{
BaseUrl = Settings.BaseUrlBulletHttpServer;
ShowHideSettings = new Command(_showHideSettings);
}
}