Je rencontre un problème étrange avec ReactiveUI et la liaison où la liaison fonctionne correctement dans la version Debug mais pas dans la version Release.La liaison ReactiveUI ne fonctionne pas dans la version Release dans une application UWP
Ici, j'ai le code pour un exemple d'application qui montre le problème. Dans les versions de débogage, lorsque je tape quelque chose dans la zone de texte, la propriété InputText dans le modèle de vue est mise à jour en conséquence et lorsque je tape sur le bouton, le texte de mise à jour s'affiche dans une boîte de dialogue. Mais le même code dans Release build ne fonctionne pas car InputText reste toujours vide.
Quelqu'un sait ce qui se passe ici?
<Page x:Class="RxBind.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel>
<TextBox x:Name="MyTextBox" Margin="10"/>
<Button x:Name="MyButton" Content="Show Dialog" Margin="10"/>
</StackPanel>
</Page>
public sealed partial class MainPage : IViewFor<MainPageViewModel>
{
public MainPage()
{
InitializeComponent();
ViewModel = new MainPageViewModel();
this.WhenActivated(d =>
{
d(this.BindCommand(ViewModel, vm => vm.MyButtonCommand, v => v.MyButton));
d(this.Bind(ViewModel, vm => vm.InputText, x => x.MyTextBox.Text));
});
}
#region IViewFor impl
object IViewFor.ViewModel
{
get { return ViewModel; }
set { ViewModel = (MainPageViewModel)value; }
}
public MainPageViewModel ViewModel { get; set; }
#endregion //IViewFor impl
}
public class MainPageViewModel : ReactiveObject
{
private string _inputText = string.Empty;
public string InputText
{
get { return _inputText; }
set { this.RaiseAndSetIfChanged(ref _inputText, value); }
}
public ReactiveCommand<Unit, Unit> MyButtonCommand { get; }
public MainPageViewModel()
{
MyButtonCommand = ReactiveCommand.CreateFromTask(async() =>
{
await new MessageDialog($"InputText={InputText}").ShowAsync();
});
}
}
@Sunteen Wu, avez-vous réellement essayé ce qui précède et conclu qu'il ne suffit pas de reproduire? Le code ci-dessus est littéralement * tout * que j'ai codé dans mon projet d'échantillon et pas une seule ligne est manquante. –
Je suis capable de vous reproduire même sur les derniers outils UWP et .NET natifs. C'est similaire à https://github.com/reactiveui/ReactiveUI/issues/1330, ce qui m'intéresse aussi d'être poursuivi. Vous pouvez vous joindre à la discussion là-bas ou envoyez-moi un courriel à [email protected] Il me faudra probablement un jour ou deux pour creuser. –
Désolé, ma faute. Manqué le paquet tiers 'ReactiveUI' lors du test. Supprimé –