我创建了自己的UserControl"ClockControl",我通过主窗口的XAML初始化.
唯一的问题是我必须将一个参数传递给时钟控件的构造函数,我不知道我该如何做到这一点.
如果我没有参数,这可以工作:
<myControl:ClockControl></myControl:ClockControl>
Run Code Online (Sandbox Code Playgroud)
但是我如何传递参数呢?
这是构造函数:
public ClockControl(String city)
{
InitializeComponent();
this.initController();
......
.....
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
Naw*_*waz 62
你的构造函数:
public ClockControl(String city)
{
InitializeComponent();
this.initController();
//...
}
Run Code Online (Sandbox Code Playgroud)
首先,如果你想在ClockControlXAML中使用,那么你需要一个默认的构造函数,意味着一个不带任何参数的构造函数.所以上面的构造函数不会起作用.
我建议你定义一个名称属性City,最好是依赖属性,然后从XAML中使用它.像这样的东西:
public class ClockControl: UserControl
{
public static readonly DependencyProperty CityProperty = DependencyProperty.Register
(
"City",
typeof(string),
typeof(ClockControl),
new PropertyMetadata(string.Empty)
);
public string City
{
get { return (string)GetValue(CityProperty); }
set { SetValue(CityProperty, value); }
}
public ClockControl()
{
InitializeComponent();
}
//..........
}
Run Code Online (Sandbox Code Playgroud)
然后你可以在XAML中写这个:
<myControl:ClockControl City="Hyderabad" />
Run Code Online (Sandbox Code Playgroud)
既然City是一个依赖属性,这意味着你甚至可以Binding这样做:
<myControl:ClockControl City="{Binding Location}" />
Run Code Online (Sandbox Code Playgroud)
希望,这解决了你的问题!
| 归档时间: |
|
| 查看次数: |
36940 次 |
| 最近记录: |