Я новичок в WPF, и мне нужно создать настраиваемый элемент табуляции (для повторного использования кода), но у меня возникли некоторые проблемы.
- Я создаю этот новый класс:
public class tabitem : TabItem
{
static tabitem()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(tabitem), new FrameworkPropertyMetadata(typeof(tabitem)));
}
}
Я создаю этот xaml-файл:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Empresa.Cliente.Presentacion.controls.dictionary"
xmlns:controls="clr-namespace:Empresa.Cliente.Presentacion.controls.code">
<Style TargetType="controls:tabitem" BasedOn="{StaticResource {x:Type TabItem}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="controls:tabitem">
<TabItem>
<TabItem.Header>
<TextBlock Grid.Column="0" Text="{Binding Header}"/>
</TabItem.Header>
<TabItem.Content>
<StackPanel>
<Button Content="new"/>
<Button Content="edit"/>
<DataGrid/>
</StackPanel>
</TabItem.Content >
</TabItem>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
Теперь я создаю несколько элементов управления (для повторного использования кода):
<controls:tabitem x:Class="Empresa.Cliente.Presentacion.modules.customers.tab__list"
xmlns:controls="clr-namespace:Empresa.Cliente.Presentacion.controls.code"
mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" Header="Module customers">
</controls:tabitem>
<controls:tabitem x:Class="Empresa.Cliente.Presentacion.modules.products.tab__list"
xmlns:controls="clr-namespace:Empresa.Cliente.Presentacion.controls.code"
mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" Header="Module products">
</controls:tabitem>
Наконец, в окне есть этот код:
<Window ... mc:Ignorable="d" WindowState="Maximized" Title="win__main" Height="450" Width="800">
<TabControl Grid.Column="2">
<products:tab__list/>
<customers:tab__list/>
</TabControl>
</Window>
Теперь проблема:
5.1) Почему при запуске приложение может отображать только заголовок элементов вкладки, но не содержимое?
5.2) Как я не могу добавлять столбцы в datagrid из каждого control (описано в пункте 3).
Спасибо за всю помощь, которую вы можете мне оказать. Я попытался найти решение в Google, но безрезультатно.