VS无法正常加载Wpf后台刷新ui的自定义控件
来源:互联网 发布:上海知金教育 编辑:程序博客网 时间:2024/05/20 02:29
今天,在用wpf制作一个UserControl被其他控件加载调用时遇到了一个问题,现在分享出来,给以后遇到这个问题的人解惑。
问题:就是这里使用了一个自定义控件,该控件中在Load函数采用了后台线程Backgroundworker来刷新UI控件中的数据。具体的代码如下所示:
public partial class ParameterConfig_Alarm : UserControl{ public ParameterConfig_Alarm() { InitializeComponent(); backgroundworker1 = new BackgroundWorker(); backgroundworker1.DoWork += backgroundworker1_DoWork; } private void backgroundworker1_DoWork(object sender,DoWorkEventArgs e) { //就是这条语句采用了从XML文件的数据来刷新控件数据,这是带参数的方式 alarmFilter1.Dispatcher.Invoke(new Action<string>((string s) => { alarmFilter1.setAlarmlevel(XmlConfig.GetAppConfig(s)); })); //就是这条语句采用了从XML文件的数据来刷新控件数据,这是不带参数的方式 alarmFilter1.Dispatcher.Invoke(new Action(() => { alarmFilter1.setAlarmType(XmlConfig.GetAppConfig("UPLD_FILTER_ALMTYPE")); })); alarmFilter1.Dispatcher.Invoke(new Action(() => { alarmFilter1.InsertFilterID(XmlConfig.GetAppConfig("UPLD_FILTER_ALMID")); })); alarmFilter1.Dispatcher.Invoke(new Action(() => { alarmFilter1.InsertFilterCode(XmlConfig.GetAppConfig("UPLD_FILTER_ALMCODE")); })); m_setAlmCountColor(); } private void ParameterConfig_Warn_Load(object sender, RoutedEventArgs e) { backgroundworker1.RunWorkerAsync(); }}
就是上面的这个控件在下面的控件来调用其的时候,会出现无法加载的情况,具体的控件调用XAML代码,如下:
<Controls:MetroWindow x:Class="INMS.MainWindow" xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration" xmlns:wf ="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro" xmlns:local="clr-namespace:INMS" Title="集中网管服务端" Height="1085" Width="1920" WindowState="Maximized"> <Grid> <local:ParameterConfig_Alarm /> </Grid>
在Grid中调用该UserCOntrol,虽然可以正常运行,但是在动态对页面进行显示的时候,会出现下图所示的问题:
这里主要导致的原因是用户控件中的
alarmFilter1.Dispatcher.Invoke(new Action<string>((string s) => { alarmFilter1.setAlarmlevel(XmlConfig.GetAppConfig(s)); }));
中采用了参数的缘故。
虽然不会导致无法运行,但是会影响后面的设计。具体是什么原因导致的,容我三思。
0 0
- VS无法正常加载Wpf后台刷新ui的自定义控件
- 最近遇到VS.Net的两个问题--无法调试,未加载符号和后台代码无法调用控件
- 用户自定义控件的背景图片无法正常显示
- WPF 后台代码 动态加载 UserControl控件
- 自定义控件-下拉刷新和上拉加载的listView
- WPF 自定义控件无法找到DataContext
- jQuery UI Dialog控件中的表单无法正常提交的解决方法
- [转]jQuery UI Dialog控件中的表单无法正常提交的解决方法
- jQuery UI Dialog控件中的表单无法正常提交的解决方法
- wpf --自定义控件的transeform
- WPF 继承自定义的控件
- WPF自定义控件的事件
- WPF 继承自定义的控件
- wpf 自定义控件的使用
- wpf 绑定数据无法更新ui控件可能存在的问题
- wpf 绑定数据无法更新ui控件可能存在的问题
- 自定义ScrollView的刷新加载
- 关于Flash无法正常加载的解决方案
- SpannableStringBuilder设置TextView文字格式(颜色、背景色、下划线、删除线等)
- WordPress 模板层次详细介绍
- 历届试题 带分数
- button居中的方法之一
- Add to numbers
- VS无法正常加载Wpf后台刷新ui的自定义控件
- 贪吃蛇c++ 乱写的
- 将本地项目托管到GitHub上
- 设计一个程序输入两个日期计算相隔多少天,或计算一个日期加上间隔后的日期。
- HDU 2084 数塔【dp(递推)+(记忆化)】
- 在IOS中嵌套H5页面发生空白的问题
- MySQL数据库的函数
- python实现线性表顺序存储的插入操作
- Android Stadio 代码模板 fbc的使用