Есть пример, давайте его разберем кратко. Есть главная страница MainPage.xaml:<UserControl
Так же есть небольшой класс SuperTab (его-то и будем в закладки запихивать): public class SuperTab
{
public string Header { get; set; }
public string SomeContent { get; set; }
}И еще есть простенький ViewModel:И, собственно говоря, звезда номера класс TabControlHelper, который и сделает всю "грязную работу": public class TabControlHelper
{
#region ItemsCollection /// <summary>
/// свойство ItemsCollection
/// </summary>
public static readonly DependencyProperty ItemsCollectionProperty =
DependencyProperty.RegisterAttached("ItemsCollection", typeof(IEnumerable), typeof(TabControl),
new PropertyMetadata(null, new PropertyChangedCallback(OnItemsCollectionChanged))); /// <summary>
/// Геттер свойства ItemsCollection.
/// </summary>
public static IEnumerable GetItemsCollection(DependencyObject d)
{
return (IEnumerable)d.GetValue(ItemsCollectionProperty);
} /// <summary>
/// Сеттер свойства ItemsCollection.
/// </summary>
public static void SetItemsCollection(DependencyObject d, IEnumerable value)
{
d.SetValue(ItemsCollectionProperty, value);
}Read more: МУСОРКА - НАЙДИ ЛУЧШЕЕ!
x:Class="TabControlBinding.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:Controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
xmlns:local="clr-namespace:TabControlBinding"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400"> <UserControl.DataContext>
<local:ViewModel />
</UserControl.DataContext> <Grid
x:Name="LayoutRoot"Background="White"><Controls:TabControlGrid.Row="1"local:TabControlHelper.ItemsCollection="{Binding Path=Collection}"></Controls:TabControl>
</Grid></UserControl>
Так же есть небольшой класс SuperTab (его-то и будем в закладки запихивать): public class SuperTab
{
public string Header { get; set; }
public string SomeContent { get; set; }
}И еще есть простенький ViewModel:И, собственно говоря, звезда номера класс TabControlHelper, который и сделает всю "грязную работу": public class TabControlHelper
{
#region ItemsCollection /// <summary>
/// свойство ItemsCollection
/// </summary>
public static readonly DependencyProperty ItemsCollectionProperty =
DependencyProperty.RegisterAttached("ItemsCollection", typeof(IEnumerable), typeof(TabControl),
new PropertyMetadata(null, new PropertyChangedCallback(OnItemsCollectionChanged))); /// <summary>
/// Геттер свойства ItemsCollection.
/// </summary>
public static IEnumerable GetItemsCollection(DependencyObject d)
{
return (IEnumerable)d.GetValue(ItemsCollectionProperty);
} /// <summary>
/// Сеттер свойства ItemsCollection.
/// </summary>
public static void SetItemsCollection(DependencyObject d, IEnumerable value)
{
d.SetValue(ItemsCollectionProperty, value);
}Read more: МУСОРКА - НАЙДИ ЛУЧШЕЕ!
0 comments:
Post a Comment