gpt4 book ai didi

c# - 你如何从xaml传递参数?

转载 作者:IT王子 更新时间:2023-10-29 04:10:36 25 4
gpt4 key购买 nike

我已经创建了自己的用户控件“ClockControl”,我通过主窗口的 XAML 对其进行了初始化。

唯一的问题是我必须将一个参数传递给时钟控件的构造函数,但我不知道我该怎么做。

如果我没有参数,这会起作用:

<myControl:ClockControl></myControl:ClockControl>

但是我怎样才能传递一个参数呢?

这是构造函数:

public ClockControl(String city)
{
InitializeComponent();
this.initController();
......
.....
}

提前致谢。

最佳答案

你的构造函数:

public ClockControl(String city)
{
InitializeComponent();
this.initController();
//...
}

首先,如果您想使用 XAML 中的 ClockControl,那么您需要一个默认构造函数,即不带任何参数的构造函数。所以上面的构造函数是行不通的。

我建议您定义一个名为 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();
}
//..........
}

然后您可以用 XAML 编写:

<myControl:ClockControl City="Hyderabad" />

由于 City 是一个依赖属性,这意味着您甚至可以像这样进行 Binding:

<myControl:ClockControl City="{Binding Location}" />

希望,这能解决您的问题!

关于c# - 你如何从xaml传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4802278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com