그래서 나는이처럼 보이는 클래스가 :WPF는 : 사용자 정의 트리거 속성으로 작업 할 연결된 속성을 가져올 수 없습니다
internal class MyClass
{
public static readonly DependencyProperty IsSomethingProperty =
DependencyProperty.RegisterAttached(
"IsSomething", // property name
typeof(bool), // property type
typeof(MyClass), // owner type
new FrameworkPropertyMetadata(false)
);
public static void SetIsSomething(DependencyObject obj, bool value)
{
obj.SetValue(IsSomethingProperty, value);
}
[AttachedPropertyBrowsableForType(typeof(TreeViewItem))]
public static bool GetIsSomething(DependencyObject obj)
{
return (bool)obj.GetValue(IsSomethingProperty);
}
}
난에서 트리거 속성으로이 연결된 속성을 사용할 수 있도록하고 싶습니다
컨트롤 템플릿, 그래서 같은 :
이<ControlTemplate TargetType="TreeViewItem">
<!-- stuff here omitted for brevity -->
<Trigger Property="my:MyClass.IsSomething" Value="True">
<!-- setters for when IsSomething is True -->
</Trigger>
</ControlTemplate>
여기
(위의 컨트롤 템플릿이하여 MyAssembly가 MyClass에은 포함하는 XAML 파일에 들어있는 적절한 xmlns:my="clr-namespace:MyAssembly"
가정) 내 문제 : 내가 이것을 할 때, 그것은 잘 컴파일됩니다. 그러나 디자이너에서이 컨트롤 템플릿을 보려고하면 Cannot find the 'IsSomething' template property on type 'System.Windows.Controls.TreeViewItem'.
이 표시되고 디자이너가로드되지 않습니다.
소유자 유형으로 MyClass
및 TreeViewItem
으로 덮어 쓰기를 시도했지만 해결되지 않았습니다. 나는 GetIsSomething
에 AttachedPropertyBrowsableForType
속성이 있거나없는 경우에도 시도해 보았습니다. 문제가 무엇인지 누구라도 알 수 있습니까?