调用带UI的子程序。待子程序执行完毕后再更新主程序的UI。
using System.Threading.Tasks;
// ----
Task.Run(() =>
{
var result = winContext.RunSp("选择路径", new Dictionary<string, object> { { "path", dataContext["path"] } });
// 使用 Dispatcher 来更新 UI 控件
win.Dispatcher.Invoke(() =>
{
dataContext["path"] = result["path"];
var pathTextBox = (TextBox)win.FindName("pathText");
pathTextBox.Text = dataContext["path"].ToString();
});
});
为什么不用自带声明式调用?因为测试发现,数据映射绑定会与onchange事件冲突 `.TextChanged += `。