我正在尝试在一个名为的类中创建一个依赖项属性 “FocusBehaviour”是在类库中。我已添加了 如下所示的名称空间..但它在第1行显示错误返回 (布尔)control.GetValue(FocusFirstProperty);
错误:System.windows.Controls.Control没有方法 'GetValue'接受类型的第一个参数 System.windows.Controls.Control。 2)同样的错误来自 SetValue()也......低于... 3)控制控制= dpObj作为控制; 错误:无法将System.DependencyObject转换为 System.windows.Controls.Control
我还添加了WindowsBase参考..
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace MyOrgBI
{
public static class FocusBehavior:DependencyObject
{
public static readonly DependencyProperty FocusFirstProperty =
DependencyProperty.RegisterAttached("FocusFirst",
typeof(bool),
typeof(Control),
new PropertyMetadata(OnFocusFirstPropertyChanged));
public static bool GetFocusFirst(Control control)
{
return (bool)control.GetValue(FocusFirstProperty);
}
public static void SetFocusFirst(Control control, bool value)
{
control.SetValue(FocusFirstProperty, value);
}
static void OnFocusFirstPropertyChanged(DependencyObject dpObj, DependencyPropertyChangedEventArgs args)
{
Control control = dpObj as Control;
if (control == null || !(args.NewValue is bool))
{
return;
}
if ((bool)args.NewValue)
{
control.Loaded += (sender, e) => control.MoveFocus(new TraversalRequest(FocusNavigationDirection.First));
}
}
}
}
以前我在WpfApplication项目中创建了一个依赖项属性。它工作正常,但是当我在另一个类库中创建一个时,它显示了这个错误。
为什么会出现这些错误?我应该怎么写这段代码?
答案 0 :(得分:2)
从DependencyObject
public static class FocusBehavior : DependencyObject
{
...
}
答案 1 :(得分:1)
您需要添加对WindowsBase
程序集的引用。 DependencyObject位于那里。