WPF MessageBoxes和DataTemplates

时间:2009-12-16 15:35:53

标签: c# wpf datatemplate messagebox

我有一个简化形式的对象如下:

public class MyObject
{
     public bool Activate { 
     get { MessageBox.Show("My Status"); } 
     set { Do Some Stuff }
}

我有一个DataTemplate,它将“Activate”属性映射到一个复选框,如下所示:

<DataTemplate x:Key="ComponentResourceKey TypeInTargetAssembly={x:Type local:PropertyGrid}, ResourceId={x:Type clr:Boolean}}">
      <CheckBox IsEnabled="{Binding Path=IsWriteable}" IsChecked="{Binding Path=Value}"/>
</DataTemplate>

模板来自我正在使用的WPF Property Grid控件。问题是永远不会显示消息框,主窗口正在等待来自框的响应。当预期呼叫但没有对话框时,我听到错误通知声音。

WPF中是否存在更改z顺序的内容?我是否在一个我不期待的环境中奔跑?

1 个答案:

答案 0 :(得分:1)

你永远不应该在getter中显示消息框! 改为使用命令。

如果传递MessageBox.Show将当前窗口作为参数调用,则应该以模态显示。