2011-01-17 2 views
1

У меня есть пользовательский элемент управления, в котором есть текстовое поле, и я использую кнопку очистки в своей основной форме, чтобы очистить информацию от всего главного окна. я хотел бы очистить текстовое поле в пользовательском элементе управления после нажатия кнопки очистки. Я havent нашел простой способ сделать это. Я попытался ссылаться на имя элемента управления в C#, за которым следует «.». однако имя текстового поля не отображается. любая помощь будет оценена!Как очистить TextBox в пользовательском элементе управления в WPF C#?

ответ

1

WPF объявляет элементы управления в UserControl как private. Для того, чтобы сделать свой TextBoxpublic вы объявляете его с FieldModifier как в:

<TextBox x:FieldModifier="Public" /> 

где x является XAML пространства имен xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml". Однако рекомендуемым способом очистки TextBox является привязка его к свойству, а затем очистка свойства.

+0

удивительный, именно то, что я искал, спасибо! – Drew

1

Вам не следует пытаться напрямую обращаться к элементам управления в UserControl из внешних классов или кода. Простым механизмом было бы добавить метод Clear() в UserControl, который очищает все соответствующие элементы управления и информацию внутри UserControl.

+0

ОК, я создал метод, есть ли способ получить доступ к нему из главного окна cs-файла? – Drew

+0

Метод Clear() должен идеально входить в файл UserControl.xaml.cs (как открытый), предполагая, что вы создали UserControl. Затем вы можете легко очистить TextBox. Если UserControl использует DataBinding, вы должны убедиться, что связанный элемент очищен. – Ryan

1

Текстовое поле может быть привязано к DataContext UserControl. Таким образом, способ очистки можно установить свойство, которое привязано к свойству Text для TextBox к пустой строке.

Смежные вопросы