Конфликты Datacontext

           

В приведенном выше коде показан мой элемент управления WatermarkTextBox . В коде за файлом я установил DataContext . Я оставил весь код для ДП элемента управления.

 public WatermarkTextBox() { InitializeComponent(); grid.DataContext = this; } 

Мне пришлось привязать DataContext к сетке, потому что иначе свойства Text как водяного знака, так и фактического текста не будут отображаться. Теперь проблема заключается в том, что я не могу установить Background of the Border вне Grid .

Я попробовал код ниже, но тогда установлен только Background Border а не водяной знак и фактический текст.

 public WatermarkTextBox() { InitializeComponent(); this.DataContext = this; grid.DataContext = this; } 

В UserControl, как это, вы никогда не должны чрезмерно устанавливать DataContext для this или anything else, потому что DataContext обычно устанавливается снаружи, когда вы используете UserControl где-то в своем приложении. Внешне применяемый DataContext обычно является (частью) модели представления приложения.

Вместо этого вы должны изменить свои внутренние привязки, чтобы они использовали явный RelativeSource :

   

а затем удалить любое назначение DataContext из конструктора UserControl.

См., Например, этот ответ (и многие другие подобные), которые подробно обсуждают этот вопрос.

  • Загрузка файлов с Java-клиента на HTTP-сервер
  • Как повысить свойства Измененные события в зависимости от свойства?
  • Ошибка WPF: не удается найти управляющий элемент FrameworkElement для целевого элемента
  • WPF StringFormat на содержании ярлыков
  • WPF DataGrid: свойство CanContentScroll, вызывающее нечетное поведение
  • В bash, как связать функциональный ключ с командой?
  • Кто-нибудь знает набор привязок C # для FFMPEG?
  • Связывание со статическим свойством
  • Почему обновление привязки не реализует INotifyPropertyChanged?
  • Разница между {Binding PropertyName} и {Binding Path = PropertyName}
  • Как сделать привязки в ItemContainerStyle в WinRT?
  • Interesting Posts

    В чем разница между gc () и rm ()

    Одна ошибка VS2010? Разрешить привязку не-const ссылки на rvalue БЕЗ ДАЖЕ предупреждение?

    Использование конвейера активов Rails 3.1 для условного использования определенного css

    Конфигурация com.sun.faces.config.ConfigureListener

    В чем разница между приложением, процессом и сервисом?

    Как получить список файлов и размеров, которые учитываются в моем аккаунте в Dropbox?

    Как решить проблему «Bootmgr is missing» на компьютере под управлением Windows 7?

    Windows, отображающая загрузочную информацию вместо загрузки

    Шаблон Java SimpleDateFormat для дат XML W3C с часовым поясом

    Java: каково большое время для объявления массива размера n?

    Когда очищается каталог Temp Windows?

    C # / F # Сравнение производительности

    Почему метод jQuery 1.9+ attr () не устарел?

    @EJB в управляемом компоненте @ViewScoped вызывает java.io.NotSerializableException

    Верните объект перетаскивания jQuery обратно в исходный контейнер на событие droppable

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