在我们的 Metro 应用程序中,我有一个enum
类型的附加属性。
将元素上的属性直接设置为 XAML 属性时,该值设置得很好,但是当Setter
在样式中使用元素时,尽管设置了该属性,但它被设置为一个null
值(即,e.NewValue
在下面的代码中为 null)
为什么是这样?它引起了问题,显然不能转换为枚举类型。谢谢。
以下是相关代码:
public static readonly DependencyProperty KeyboardScrollRestrictionStyleProperty =
DependencyProperty.RegisterAttached("KeyboardScrollRestrictionStyle", typeof(KeyboardScrollRestrictionStyle), typeof(FlipViewScrollBehaviour),
new PropertyMetadata(KeyboardScrollRestrictionStyle.TextBox, OnKeyboardScrollRestrictionStyleChanged));
static void OnKeyboardScrollRestrictionStyleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
//I check e.NewValue at breakpoint
}
这有效(e.NewValue 是 TextBox):
<TemplatedControls:WatermarkTextBox
Behaviours:FlipViewScrollBehaviour.KeyboardScrollRestrictionStyle="TextBox"
/>
这不是(e.NewValue 为空):
<Style x:Key="TimesheetLineListViewItemTextBox" TargetType="TextBox">
<Setter Property="Behaviours:FlipViewScrollBehaviour.KeyboardScrollRestrictionStyle" Value="TextBox" />
</Style>