Ami*_*ghi 19 wpf gridview messagebox telerik radgridview
我有一个WPF项目,当我尝试在RowLoad事件上运行此代码我得到以下错误:
private void ParentGridView_OnRowLoaded(object sender, EventArgs e)
{
try
{
if(((RadGridView)sender).Columns != null)
{
MessageBox.Show(((RadGridView)sender).Columns.Count.ToString(CultureInfo.InvariantCulture));
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
错误:Dispatcher处理已暂停,但仍在处理消息.
请注意,GridView控件是Telerik RadGridView
Dav*_*man 28
这个答案描述了与你相同的情况.(它在不同的网站上引用了这个答案).
暂停调度程序处理以避免在更新可视树时出现重入问题.
如果您确实需要显示一个消息框以响应"Row Loaded"事件,则需要使用`Dispatcher.BeginInvoke()延迟调用.
所以,替换:
MessageBox.Show(((RadGridView)sender).Columns.Count.ToString(CultureInfo.InvariantCulture));
Run Code Online (Sandbox Code Playgroud)
有:
var msg = ((RadGridView)sender).Columns.Count.ToString(CultureInfo.InvariantCulture);
Dispatcher.BeginInvoke(new Action(() => MessageBox.Show(msg)));
Run Code Online (Sandbox Code Playgroud)
如果此代码位于WPF对象中,则该Dispatcher
属性可用.否则,您需要从其他地方获取它.
归档时间: |
|
查看次数: |
21494 次 |
最近记录: |