Моя программа имеет собственный DependencyObject, к которому я связать значения другого DependencyObject, которые установлены в коде:WPF XAML Binding не вызывая измененное событие
<TabControl
Grid.Column="1"
Grid.Row="1">
<TabItem
Header="XML">
<TextBox
Text="{Binding Asset.Xml, ElementName=window}"
IsReadOnly="True" />
</TabItem>
<TabItem
Header="Texture">
<we:DXImage>
<we:DXImage.Renderer>
<we:TextureRenderer
Source="{Binding Asset.Image, ElementName=window}" />
</we:DXImage.Renderer>
</we:DXImage>
</TabItem>
</TabControl>
текстовое поле привязки к Asset.Xml работает безупречно, и если я замените xaml второго элемента на TextBox, он также отображает содержимое Asset.Image (путь к изображению строки типа). Источник Свойство визуализатора выглядит следующим образом:
private static readonly DependencyProperty SourceProperty = DependencyProperty.Register("Source", typeof(string), typeof(TextureRenderer),
new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender, SourceChanged));
public string Source
{
get { return (string)GetValue(SourceProperty); }
set { SetValue(SourceProperty, value); }
}
private static void SourceChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
{
// Do stuff
}
Однако событие SourceChanged никогда не вызывается.
Я обновил проект на GitHub: https://github.com/Qibbi/WrathEd/tree/master/WrathEd2 код XAML находится в проекте WrathEd2 в то время как DXImage, видеообработки и другие классы поддержки в WrathEd.Windows Ток MainWindow бардак код за мудрое атм , Я планирую реорганизовать его в соответствующие части при завершении проекта.
В вашей привязке источника попробуйте добавить «Mode = TwoWay»? –
Это не делает. – Jana
Вы наблюдаете какое-либо сообщение об ошибке связи в окне вывода в Visual Studio при запуске приложения? – Clemens