私たちの 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 は null です):
<Style x:Key="TimesheetLineListViewItemTextBox" TargetType="TextBox">
<Setter Property="Behaviours:FlipViewScrollBehaviour.KeyboardScrollRestrictionStyle" Value="TextBox" />
</Style>