Как вы передаете параметры из xaml?

Я создал свой собственный UserControl «ClockControl», который я инициализирую через XAML главного windows.

Единственная проблема заключается в том, что я должен передать параметр конструктору управления часами, и я не знаю, как я могу это сделать.

Это работает, если у меня нет параметров:

 

Но как я могу передать параметр?

Вот конструктор:

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

Заранее спасибо.

Ваш конструктор:

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

Прежде всего, если вы хотите использовать ClockControl из XAML, вам нужен конструктор по умолчанию, это означает конструктор, который не принимает никаких параметров. Таким образом, вышеупомянутый конструктор не будет работать.

Я бы предложил вам определить свойство с именем 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:

  

Поскольку City является свойством зависимости, это означает, что вы даже можете сделать Binding следующим образом:

  

Надеюсь, это решает вашу проблему!

Это делается с использованием DependencyProperty , но не через конструктор. Просто добавив свойства к самому управлению и используя их из кода.

Прочитайте следующее в отношении DependencyProperty:

  • Обзор свойств зависимостей
  • Класс DependencyProperty MSDN
  • Почему свойства зависимости?

Как наглядное замечание, что это позволит вам сделать следующее, а затем использовать его в коде:

  

x: Аргумент директивы будет тем, что вам нужно.

Это упростит, просто привязывая свойство Tag элемента управления. Быстрая и грязная, и, возможно, не слишком элегантная, но экономит время, добавляя еще одно свойство.

  • XAML GridView ItemTemplate не привязывается к управлению
  • Как заставить детей StackPanel заполнить максимальное пространство вниз?
  • WPF: установка ширины (и высоты) в процентах
  • Являются ли "{Binding Path =.}" И "{Binding}" действительно равными
  • Значение * (звездочка) в WPF ColumnDefinition?
  • GridView с двумя столбцами, шириной заливки
  • Как скрыть столбцы datagrid wpf в зависимости от свойства
  • Установка свойства с помощью EventTrigger
  • Ошибка привязки элемента ElementName
  • Как извлечь шаблон управления по умолчанию в Visual Studio?
  • Связывание в WPF с элементом массива, заданным свойством
  • Interesting Posts

    Struts2: Обновление значений «Список объектов» внутри карты

    Файл конфигурации C # DLL

    Что такое mp4v и mp4a?

    HTTP Basic Auth через URL в Firefox не работает?

    Как зашифровать ТОЛЬКО папку профиля пользователя (например: / User / sid) в Mac OS X Lion 10.7.2?

    Почему циркулярные ссылки считаются вредными?

    Почему только пользовательский интерфейс разрешает изменять пользовательский интерфейс?

    Как удалить выделение границы в текстовом элементе ввода

    Динамический ввод строки – с помощью scanf (“% as”)

    Ошибка libpng: Не отображается файл PNG Ошибка в Android Studio

    Самый простой способ получить щелчок правой кнопкой мыши «Открыть командное окно здесь» с помощью admin priveleges в Windows 7

    android: растянуть изображение в представлении изображения для соответствия экрану

    Сценарии Bash, множественные условия во время цикла

    Почему окна не могут создать системный раздел?

    Есть ли простой алгоритм, который может определить, является ли X простым, а не путать простого смертного программиста?

    Давайте будем гением компьютера.