WPF:创建需要构造函数中的参数的应用程序资源 - 如何?

时间:2009-03-31 22:23:45

标签: c# wpf resources

我在App.xaml文件中创建资源时遇到问题。我的问题是我想在其构造函数中实例化一个需要参数的对象(在这种特殊情况下我的Linq-to-Sql DataContext),但我不知道是否甚至可以在XAML中传递这样的参数。有没有人知道如何解决这个问题?我想全局访问我的XAML中的这个数据上下文,我的想法是我可以将它作为参数传递给ObjectDataSource:

   <ObjectDataProvider x:Key="PriceCodeProvider" x:Name="priceCodeProvider" ObjectType="{x:Type local:PriceCodeObjectDataProvider}" >
        <ObjectDataProvider.ConstructorParameters>
            <StaticResource ResourceKey="MyDataContext" />
        </ObjectDataProvider.ConstructorParameters>
    </ObjectDataProvider>

从设计的角度来看,我确信有更好的方法来完成我正在寻找的东西,但我对WPF很新......并且在一点帮助下,我认为这样做可以胜任对于我的特定项目。

谢谢!

- 查尔斯

1 个答案:

答案 0 :(得分:0)

XAML不允许传递构造函数参数。您需要创建一个包装类,设置属性,然后您的包装器可以正确调用ObjectDataProvider构造函数。