我有一个简化形式的对象如下:
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顺序的内容?我是否在一个我不期待的环境中奔跑?
答案 0 :(得分:1)
你永远不应该在getter中显示消息框! 改为使用命令。
如果传递MessageBox.Show将当前窗口作为参数调用,则应该以模态显示。