Visual Studio抛出了一个无用的异常,我认为这是因为我在两个具有相同名称的类似类中有多个依赖属性。
这些类是添加/编辑联系人,因此它们共享许多属性,我的问题是这个。
我可以将房产注册为:
DependencyProperty.Register( /*...*/ );
或:
MyDP.AddOwner( /*...*/ )
问题在于我无法知道添加或编辑类是否会首先实例化(取决于用户选择),因为它们被定义为静态,我不能在其初始化逻辑中添加任何花哨的东西。 ..我的想法可以在两个班级中自成一体。
那么如何在这种情况下设置依赖属性呢?
修改
类型初始化异常:'CharterHouseTouchScreenDemo.Views.Membership.AddMembershipView'的类型初始值设定项引发异常。
我知道它是依赖属性初始化程序之一,因为当单步执行它时甚至无法访问构造函数。
同样,在这种情况下,他们没有足够的相似性来成为同一个班级。简而言之,他们共享的唯一内容是存储在此依赖项属性中的信息。
编辑2:
我很惊讶这没有更好的记录,在任何中等规模的应用程序中,意外命名依赖属性的机会相同的可能性非常大。特别是对于BackgroundColour
,HeadingText
,CurrentXYZ
...
我总是假设您传递了所有者类的类型,因此不会导致这样的问题。
答案 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-Model和WPF command framework
花半小时阅读这两个主题可能会让您找到一个更优雅的解决方案,而不是为您提供任何帮助。