Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WPF, Silverlight Новый топик    Ответить
 Wpf составной контрол  [new]
Nechto
Member

Откуда:
Сообщений: 825
Всем здравствуйте!

Подскажите пожалуйста как доработать TabContol, чтобы он не кричал на ItemsSource, что он как будто пустой?

Сам контрол, и класс который в нем должен использоваться
<TabControl x:Class="Work.TabItemPages"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            mc:Ignorable="d"
            x:Name="Control">
    <Grid>
        <TabControl x:Name="TabControl"
                    ItemsSource="{Binding ElementName=Control, Path=ItemsSource}" 
                    SelectedItem="{Binding ElementName=Control, Path=SelectedItem, Mode=TwoWay}"
                    SelectedIndex="0">
            <TabControl.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Path=Header}" />
                </DataTemplate>
            </TabControl.ItemTemplate>
            <TabControl.ContentTemplate>
                <DataTemplate>
                    <Frame Content="{Binding Path=PageContent}" />
                </DataTemplate>
            </TabControl.ContentTemplate>
        </TabControl>
    </Grid>
</TabControl>
public class ItemPage
{
    public string Header { get; set; }
    public object Tag { get; set; }
    public Page PageContent { get; set; }
    public bool IsLoaded { get; set; } 
}


Далее модель и а представление в котором выше указанный контрол должен работать
public class ItemPage
{
    public ItemPage()
    {
          ItemPage = new ObservableCollection<ItemPage>
          {
                new ItemPage {Header = "Проверка"}
          };
    }

    private ObservableCollection<ItemPage> _itemPage;
    public ObservableCollection<ItemPage> ItemPage
    {
        get { return _itemPage; }
        set
        {
            if (!Equals(_itemPage, value))
            {
                _itemPage = value;
                RaisePropertyChanged("ItemPage");
            }
        }
    }
}
<Page x:Class="Work.View1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:viewModel="clr-namespace:Work.Models"
      mc:Ignorable="d" 
      d:DataContext="{d:DesignInstance viewModel:Model}">
	  <StackPanel Orientation="Vertical">
	      <wpf:TabItemPages ItemsSource="{Binding ItemPage}" />
	  </StackPanel>
</Page>
2 ноя 17, 14:59    [20922111]     Ответить | Цитировать Сообщить модератору
 Re: Wpf составной контрол  [new]
vb_sub
Member

Откуда:
Сообщений: 781
Nechto,
внешняя обертка из TabControl принципиально нужна?
3 ноя 17, 11:03    [20924095]     Ответить | Цитировать Сообщить модератору
 Re: Wpf составной контрол  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 4038
что значит кричит? ошибка падает или красное сообщение в debug output? в чем собственно проблема?
а по факту, такой binding. это bad practics, тем более, если в ItemsSource будут элементы управления, то упадет гарантированно
3 ноя 17, 11:41    [20924264]     Ответить | Цитировать Сообщить модератору
Все форумы / WPF, Silverlight Ответить