相同的Dependency属性,多个类

时间:2010-09-24 12:35:05

标签: c# wpf visual-studio dependency-properties

Visual Studio抛出了一个无用的异常,我认为这是因为我在两个具有相同名称的类似类中有多个依赖属性。

这些类是添加/编辑联系人,因此它们共享许多属性,我的问题是这个。

我可以将房产注册为:

DependencyProperty.Register( /*...*/ );

或:

MyDP.AddOwner( /*...*/ )

问题在于我无法知道添加或编辑类是否会首先实例化(取决于用户选择),因为它们被定义为静态,我不能在其初始化逻辑中添加任何花哨的东西。 ..我的想法可以在两个班级中自成一体。

那么如何在这种情况下设置依赖属性呢?

修改

  

类型初始化异常:'CharterHouseTouchScreenDemo.Views.Membership.AddMembershipView'的类型初始值设定项引发异常。

我知道它是依赖属性初始化程序之一,因为当单步执行它时甚至无法访问构造函数。

同样,在这种情况下,他们没有足够的相似性来成为同一个班级。简而言之,他们共享的唯一内容是存储在此依赖项属性中的信息。

编辑2:

我很惊讶这没有更好的记录,在任何中等规模的应用程序中,意外命名依赖属性的机会相同的可能性非常大。特别是对于BackgroundColourHeadingTextCurrentXYZ ...

等通用内容

我总是假设您传递了所有者类的类型,因此不会导致这样的问题。

2 个答案:

答案 0 :(得分:1)

不是真正的犹太回答,但它有效:

#region SubscriptionFee

/// <summary>
/// SubscriptionFee Dependency Property
/// </summary>
public static readonly DependencyProperty SubscriptionFeeProperty =
    DependencyProperty.Register( "SubscriptionFee_2", typeof( decimal ), typeof( EditMembershipViewModel ),
        new FrameworkPropertyMetadata( (decimal)0 ) );

/// <summary>
/// Gets or sets the SubscriptionFee property. This dependency property
/// indicates the new subscription fee for the customer.
/// </summary>
public decimal SubscriptionFee
{
    get { return (decimal)GetValue( SubscriptionFeeProperty ); }
    set { SetValue( SubscriptionFeeProperty, value ); }
}

#endregion SubscriptionFee

答案 1 :(得分:0)

首先,抱歉这不作为评论发布。我不喜欢留下评论的声誉。

对于名为“AddContact和EditContact”之类的类,在我看来,您正在构建这些类来编辑可能是Contact类的内容吗?

你可能会完全错误地解决你的解决方案,并引起更大的麻烦。

您能提供有关代码的更多详细信息吗?例如,如果您有一个显示联系信息的GUI并且您希望对其进行编辑,那么有比使用Add / Edit类更好的解决方案。 dependncey属性应该是您的联系人类的一部分,而不是他们自己的单独编辑类。

也许您可能希望阅读Model View View-ModelWPF command framework

花半小时阅读这两个主题可能会让您找到一个更优雅的解决方案,而不是为您提供任何帮助。