У меня есть пользовательский элемент управления, который содержит cefsharpwpf: ChromiumWebBrowser элемент управления. этот U C загружается динамически в главное окно (в элементе управления вкладками). U C получает и устанавливает значение var Title из класса DisplayHandler , который реализует IDisplayHandler, INotifyPropertyChanged
, и он отлично работает для U C. Теперь я хочу, чтобы значение Title либо из класса DisplayHandler , либо из U C в основном классе устанавливало заголовок элемента вкладки. этот код из U C и работает для заголовка Lable
<Label x:Name="title" Content="{Binding ElementName=Browser_DisplayHandler, Path=Title, TargetNullValue=TitleHere}" />
<cefsharpwpf:ChromiumWebBrowser Name="browser" Address="google.com">
<cefsharpwpf:ChromiumWebBrowser.DisplayHandler>
<local:DisplayHandler x:Name="Browser_DisplayHandler"/>
</cefsharpwpf:ChromiumWebBrowser.DisplayHandler>
</cefsharpwpf:ChromiumWebBrowser>
, но я хочу это значение заголовка в основном классе, в котором есть шаблон данных, предназначенный для управления вкладками и текстового блока в заголовке называется txtTitle и привязывается к заголовку
<TabControl Name="tabDynamic" ItemsSource="{Binding}" SelectionChanged="tabDynamic_SelectionChanged">
<TabControl.Resources>
<DataTemplate x:Key="TabHeader" DataType="TabItem">
<DockPanel Width="200" MaxWidth="200" Height="28">
<Button Name="btnDelete" DockPanel.Dock="Right" Margin="5,0,0,0" Padding="0" Click="btnDelete_Click" CommandParameter="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem}}, Path=Name}" Width="15" Height="15">
<Image Source="C:\Users\Faisal\source\repos\SampleWPF\SampleWPF\delete.png" Height="13" Width="13"></Image>
</Button>
<TextBlock Name="txtTitle" Text="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem}}, Path=Header}" />
</DockPanel>
</DataTemplate>
<Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Border Name="Border" Margin="1,0">
<ContentPresenter x:Name="ContentSite"
VerticalAlignment="Center"
HorizontalAlignment="Center"
ContentSource="Header"
Margin="7,2"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TabControl.Resources>
</TabControl>
, если я установил tab.Header = "Tab Title";
из его основного класса, который работает, но я хочу заголовок из класса DisplayHandler
string _title;
public string Title
{
get { return _title; }
set
{
_title = value;
OnPropertyChanged("Title");
}
}
Пожалуйста, помогите мне достичь этого, используя технику кода или Binding in WPF благодаря