是否使用Application.Current.Properties通过单击按钮取消发送文本字符串数据?WPF C#

是否使用Application.Current.Properties通过单击按钮取消发送文本字符串数据?WPF C#,c#,wpf,C#,Wpf,我有几个按钮可以将文本框中的文本字符串数据发送到另一个页面上的文本块。请参阅下面的代码 private void button_Click(object sender, RoutedEventArgs e) { Application.Current.Properties["obj1"] = textbox.Text; } private void button2_Click(object sender, RoutedEventArgs e) { Application.Cur

我有几个按钮可以将文本框中的文本字符串数据发送到另一个页面上的文本块。请参阅下面的代码

private void button_Click(object sender, RoutedEventArgs e)
{
    Application.Current.Properties["obj1"] = textbox.Text;
}

private void button2_Click(object sender, RoutedEventArgs e)
{
    Application.Current.Properties["obj2"] = textbox2.Text;
}
如果我想使用按钮单击来停止/取消正在发送的信息,我将如何执行此操作

接收文本字符串的页面如下所示

protected override void OnInitialized(EventArgs e)
    {
        base.OnInitialized(e);
        textBlock1.Text = Application.Current.Properties["obj1"]?.ToString();
        textBlock2.Text = Application.Current.Properties["obj2"]?.ToString();
    }

实际上,您无法停止发送,只能撤消结果。发送过程在用户有时间对其作出反应之前很久就超出了代码的范围,这是反应时间的限制。同样地,你不能像老笑话那样拔下cat5来阻止电子邮件的发送,当你重新考虑发送时,它早已不在你手中了

毕竟,取消/停止所需的时间将接近原始发送所需的时间,并加上半秒的人类反应时间


您的最佳解决方案可能只是将该键的字典值设置为null,但由于我们没有看到您的任何用法,因此这只是对什么对您有效的最佳猜测。

此过程需要多长时间?用户似乎没有时间单击“取消”…您不能“阻止”字典中的值以任何其他方式进行设置,除非首先避免设置该值。执行此类同步操作后,无法取消它。如果要清除该值,可以将其设置为string.Empty或null:Application.Current.Properties[“obj2”]=string.Empty;你一开始没有发送任何东西。您正在存储一些值,并且您可能正在另一个地方访问它们-没有人真正知道,因为您在设置属性后没有显示属性的用法。也许你应该写一个长一点的解释,说明你实际上想做什么。把你的问题编辑成一个完全不同的问题是不合适的。如果您有一个新问题,请提出一个新问题。@Rogan您可能希望将以前的值存储在某个地方,这样您就可以将词典设置回该键的以前的值。没有办法真正停止存储。@Rogan这是解决方案。你应该花点时间去理解书中写了什么,以及如何将它应用到你的具体案例中。至少考虑到您当前的开发方法,这是一个解决方案。当您开始在MVVM中使用WPF时,可能会有不同的选项来还原您的属性,但这超出了这里的范围。