Ich bin ein seltsames Problem mit ReactiveUI und Bindung, wo die Bindung in Debug-Build, aber nicht in Release-Build funktioniert.ReactiveUI Binding funktioniert nicht in Release-Build in einer UWP-App
Hier habe ich den Code für eine Beispiel-App, die das Problem zeigt. In Debug-Builds wird die InputText-Eigenschaft im Ansichtsmodell entsprechend aktualisiert. Wenn ich auf die Schaltfläche tippe, wird der aktualisierte Text in einem Nachrichtendialog angezeigt. Derselbe Code in Release-Build funktioniert jedoch nicht, da InputText immer leer bleibt.
Wer weiß, was hier vor sich geht? Diese
<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, haben Sie tatsächlich das oben genannte versucht und kam zu dem Schluss, dass es nicht genug ist zu reproduzieren? Der obige Code ist buchstäblich * alles *, das ich in meinem Beispielprojekt codiert habe und keine einzige Zeile fehlt. –
Ich bin in der Lage, das Problem selbst bei den neuesten UWP- und .NET Native-Tools zu reproduzieren. Es ist ähnlich wie https://github.com/reaceuci/ReactiveUI/issues/1330, was mich ebenfalls interessiert. Sie können sich an der Diskussion beteiligen oder eine E-Mail an [email protected] schreiben. Es wird wahrscheinlich einen oder zwei Tage dauern, bis ich durchgebrochen bin. –
Entschuldigung, meine Schuld. Das 'ReactiveUI' Paket von Drittanbietern wurde beim Testen verpasst. Gelöscht. –