Visual Studio 抛出了一个无用的异常,我认为这是由于我在两个具有相同名称的相似类中有多个依赖属性造成的。
这些类是添加/编辑联系人,因此它们共享许多属性,我的问题是这个。
我可以将属性(property)注册为:
DependencyProperty.Register( /*...*/ );
或:
MyDP.AddOwner( /*...*/ )
问题是我无法知道添加或编辑类是否会首先实例化(取决于用户的选择),因为它们被定义为静态的,所以我无法在它们的初始化逻辑中加入任何花哨的东西。 .. 我没有可以包含在这两个类中的想法。
那么在这种情况下如何设置依赖属性呢?
编辑:
Type Initialization Exception: The type initializer for 'CharterHouseTouchScreenDemo.Views.Membership.AddMembershipView' threw an exception.
我知道它是依赖属性初始化程序之一,因为单步执行时甚至没有到达构造函数。
此外,在这种情况下,它们没有足够的相似性来属于同一类。简而言之,它们唯一共享的是存储在此依赖属性中的信息。
编辑 2:
我很惊讶这没有得到更好的记录,在任何中型大型应用程序中,意外地将依赖属性命名为同一事物的可能性非常大。特别是对于BackgroundColour
、HeadingText
、CurrentXYZ
...
我一直假设你传递了所有者类的类型,这样它就不会导致这样的问题。
最佳答案
不是真正的犹太洁食答案,但它有效:
#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
关于c# - 相同的依赖属性,多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3787096/