Интересно, что-то не так с моим свойством зависимости?
// In MarkdownEditor.xaml.cs, DataContext for MarkdownEditor.xaml
public string TextContent
{
get { return (string)GetValue(TextContentProperty); }
set { SetValue(TextContentProperty, value); }
}
public static readonly DependencyProperty TextContentProperty =
DependencyProperty.Register("TextContent", typeof(string), typeof(MarkdownEditor), new UIPropertyMetadata(""));
Когда TextContent
установлен в XAML как
<me:MarkdownEditor TextContent="{Binding TextContent}" Options="{Binding Options}" />
Не удается ... когда я
<me:MarkdownEditor TextContent="Hello world" Options="{Binding Options}" />
Работает ... Естьчто-то не так?Похоже, подобное происходит с опциями
ОБНОВЛЕНИЕ 1
Я замечаю, что переплет с обычным текстовым полем работает нормально
<TextBox Text="{Binding TextContent}" />
К вашему сведению: в MarkdownEditor.xaml
<TextBox Text="{Binding TextContent}"
FontFamily="{Binding Path=Options.FontFamily}"
FontSize="{Binding Path=Options.FontSize}"
FontWeight="{Binding Path=Options.FontWeight}"
Background="{Binding Path=Options.Background}"
Foreground="{Binding Path=Options.Foreground}" />
ОБНОВЛЕНИЕ 2
О!Интересно, когда я делаю
<me:MarkdownEditor TextContent="{Binding TextContent}" Options="{Binding Options}" />
Откуда взялись свойства TextContent
& Options
?MarkdownEditor
ViewModel?
ОБНОВЛЕНИЕ 3
Еще несколько наблюдений:
Barebones
<me:MarkdownEditor />
TextContent
будет установлено значение из конструктора MarkdownEditor
public MarkdownEditor()
{
InitializeComponent();
DataContext = this;
TextContent = "From MarkdownEditor.xaml.cs";
}
Статическое значение
<me:MarkdownEditor TextContent="Static Value" />
Строка "Статическое значение" отображается
Binding
<me:MarkdownEditor TextContent="{Binding Path=TextContent}" />
показано значение из объявления свойства зависимостей
public static readonly DependencyProperty TextContentProperty =
DependencyProperty.Register(..., new UIPropertyMetadata("Default"));