以编程方式定义StackPanel资源?

时间:2014-02-22 21:36:00

标签: c# .net wpf

我只是在寻找我在网上找到的一些WPF样本,并且遇到了一个奇怪的行为,我在下面简化了它:

  <StackPanel Name="sp1">
    <StackPanel.Resources>
      <!--<src:ItemsForSale x:Key="MyData"/>-->
    </StackPanel.Resources>
    <ListView Name="itemsControl"  ItemsSource="{StaticResource MyData}">
      <ListView.View>
      </ListView.View>
    </ListView>
  </StackPanel>

如果我取消评论第3行(资源定义),一切都很好。 但是,如果我对该行进行注释,并以编程方式添加以下内容:

public MainWindow()
{
    InitializeComponent();
    sp1.Resources.Add("MyData", new ItemsForSale());
}

我得到了运行时异常A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll

我尝试在stackpanel的LoadedInitialized事件中添加资源无效。

1 个答案:

答案 0 :(得分:3)

总结注释问题是由初始化期间需要MyData资源的控件引起的,并引发了此异常:

  

找不到名为“MyData”的资源。资源名称区分大小写

要解决问题,而不是StaticResource使用DynamicResource

相关问题