c# - WPF 设计器引用枚举问题

标签 c# wpf xaml enums

因此,我在本示例中使用 staticextension 引用了一个枚举,它在运行时工作正常,但在设计时由于错误“无法创建类型为‘StaticExtension’的实例而失败。”

我理解这意味着它认为需要枚举类型的实例来实际引用它。但是,枚举在窗口中定义为静态,因此我不明白为什么它会出现问题。

有什么合理的方法可以让设计师继续工作吗?到目前为止,我发现的最接近的方法是将其放入 objectdataprovider 中并创建方法来返回枚举值。在幕后,这基本上是创建一个对象来引用静态类型,并且似乎需要太多工作才能将枚举值取出。这里的目标只是能够引用单个枚举类型并显示它们。

<Window 
  x:Class="DaedalusGraphViewer.GraphViewerWindow"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:DaedalusGraphViewer="clr-namespace:DaedalusGraphViewer">
 <StackPanel>
    <Label Content="testtesttest">
      <Label.ContextMenu>
        <ContextMenu>
          <MenuItem Header="{x:Static DaedalusGraphViewer:GraphViewerWindow+Test.test1}"/>
        </ContextMenu>
      </Label.ContextMenu>
    </Label>
  </StackPanel>  
</Window>

C#:

using System.Windows;

namespace DaedalusGraphViewer
{
  /// <summary>
  /// Interaction logic for GraphViewerWindow.xaml
  /// </summary>
  public partial class GraphViewerWindow : Window
  {
    public GraphViewerWindow()
    {
      InitializeComponent();
      Application.Current.MainWindow = this;
    }

    public enum Test
    {
      test1, test2
    }
  }
}

最佳答案

这是已知的bug在设计师中。解决方法是不要将嵌套类型与设计器一起使用。

关于c# - WPF 设计器引用枚举问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18451597/

相关文章:

wpf - MenuItem_Click' 无效。 'Click' 不是 'System.Windows.Controls.DataGridTextColumn 上的事件

silverlight - 在 XAML (Silverlight, WP) 的一个地方为网格中的所有文本 block 设置前景色

c# - WPF:如何在设计模式下创建示例数据?

c# - 使用在 XAML 资源中声明的数组

c# - 如果我们使用 NGen.exe 将其编译为 native 代码,C# 是否需要运行 .NET 框架?

wpf - 如何在用户将数据输入字段之前阻止验证?

c# - TextBox 绑定(bind)到 double 并输入小于 -1 的负数时出现问题

wpf - 如何在 WPF 中呈现 ResourceDictionary 中的 DrawingBrush 元素?

xaml - 转换器无法将类型 'Windows.Foundation.String' 的值转换为类型 'ImageSource'

c# - 事件处理程序未删除