У меня проблема с DependencyProperty в UserControl. Мой элемент управления предоставляет два Dependencyproperties, bool и строку. Свойство string работает, но bool этого не делает. Я не получаю ошибок, но изменения не отражаются в любом случае.DependencyProperty bool в UserControl
Я определяю свойство как это:
private static readonly DependencyProperty IncludeSubdirectoriesProperty =
DependencyProperty.Register(
"IncludeSubdirectories",
typeof(bool),
typeof(DirectorySelect),
new FrameworkPropertyMetadata(false) { BindsTwoWayByDefault = true }
);
public bool IncludeSubdirectories
{
get { return (bool) GetValue(IncludeSubdirectoriesProperty); }
set { SetValue(IncludeSubdirectoriesProperty, value); }
}
В XAML для пользовательского элемента управления я связываться со свойством, как это:
<CheckBox
Name="IncludeSubdirectoriesCheckbox"
IsChecked="{Binding Path=IncludeSubdirectories, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
Include subfolders</CheckBox>
И когда я использовать элемент управления я связываться с таких как:
<Controls:DirectorySelect
Directory="{Binding Directory}"
IncludeSubdirectories="{Binding WatchSubDirs}"/>
«Каталог» - это свойство строки, которое прекрасно работает. Я связываю их обоих одинаково, но я просто не могу заставить bool работать.
Где я ошибся?
Как вы видите что изменения не отражаются? Вы пытались установить контрольные точки в 'WatchSubDirs', а не' IncludeSubdirectoriesProperty'? Является ли 'WatchSubDirs' DP или простым свойством? – sll
VS не сигнализирует во время компиляции, но печатает информацию журнала в окне вывода Visual Studio. Там всегда что-то написано. Среди других вещей вы должны найти ошибку при неудачной привязке, неудачном преобразовании или что-то еще ... – Tigran
Я не знал о сообщениях о состоянии в окне вывода. Это очень помогает :) Спасибо. – SimonHL