0

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

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

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

<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 属性网格控件。问题是消息框永远不会显示,主窗口正在等待该框的响应。当预期呼叫但不存在对话框时,我听到错误通知声音。

WPF 中有什么东西可以改变 z 顺序吗?我是否在我不期望的环境中运行?

4

1 回答 1

1

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

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

于 2009-12-16T15:41:12.033 回答