【发布时间】:2020-07-03 11:48:46
【问题描述】:
所以我的代码运行良好。但是现在,即使我可以通过剪贴板副本确认变量和字符串是否存在,文本块也不会通过 TextBlock.Text 更新。我关掉了什么吗?每个人同时停止这样做。
`private void actionPing_Click(object sender, RoutedEventArgs e) {
try
{
Ping myPing = new Ping();
PingReply reply = myPing.Send(HostNameIPTyped.Text.ToString(), 500);
if (reply != null)
{
string tripTime = reply.RoundtripTime.ToString();
if (tripTime == "0")
{
PingStatus1.Foreground = new System.Windows.Media.SolidColorBrush((Color)ColorConverter.ConvertFromString("#660000"));
PingStatus1.Text = "Device not found"; <---NONE OF THESE ARE UPDATING ACROSS THE ENTIRE PROGRAM
}
else
{
PingStatus1.Foreground = new System.Windows.Media.SolidColorBrush((Color)ColorConverter.ConvertFromString("#17b05c"));
PingStatus1.Text = "Ping Successful, " + reply.RoundtripTime.ToString() + "ms roundtrip";
//// LET'S GET THE IP AND HOSTNAME OF WHATEVER THE HELL YOU PUT IN
////IPADDRESS
try
{
System.Net.IPAddress ip = System.Net.Dns.GetHostEntry(HostNameIPTyped.Text.ToString()).AddressList.Where(o => o.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).First();
ipAddress = ip.ToString();
}
catch (Exception ex)
{ }
////HOSTNAME
try
{
System.Net.IPHostEntry hostEntry = System.Net.Dns.GetHostEntry(ipAddress);
machineName = hostEntry.HostName;
string linkBuild = "http://" + machineName;
}
catch (Exception ex) { }
PingStatus1.Text += " " + machineName;
}
}
}
catch
{
{
PingStatus1.Foreground = new System.Windows.Media.SolidColorBrush((Color)ColorConverter.ConvertFromString("#660000"));
PingStatus1.Text = "Device not found";
}
}
}`
【问题讨论】:
-
您的问题需要更多细节才能让任何人合理回答。你在使用绑定吗?您是否正在更新绑定的属性?还是您以其他方式更新文本块?
-
对一个显示 TextBlock.Text = "Test"; 的按钮使用非常简单的单击状态。这是有效的,但在所有文本块上都神奇地停止了。
-
示例...这是我的 Ping。更新文本块工作得很好。我没有改变任何东西。关键是它实际上仍然执行 ping 并且确实返回 IP 和主机名以及所有其他内容,它只是拒绝更新文本块。 ` PingStatus1.Text = "Ping 成功," + reply.RoundtripTime.ToString() + "ms 往返"; `
-
我添加了完整的代码部分,以便您查看。该代码正在运行,但随后所有文本块更新全面停止。甚至尝试了一个简单的测试而不需要其他任何东西,它不会更新
-
@Shawn 您正在吞咽异常,可能正在抛出异常而您没有意识到这一点。尝试记录或重新抛出异常。