2010-05-22 3 views

ответ

1

общий шаблон будет установить DataContext в вас загруженном случае, если вы хотите привязать его к TabControltabs_control на странице:

public MainPage() 
{ 
    InitializeComponent(); 
    Loaded += OnLoaded; 
} 

protected void OnLoaded(object sender, RoutedEventArgs e) 
{ 
    //Initialize tabs collection 
    tab_control.ItemsSource = tabs; 
} 

Очевидно, что вы должны заменить фактически контролировать вы хотите связать с.

EDIT

Base на ваши комментарии, что вы могли бы сделать, это просто настроить управление, чтобы быть контекст данных, то ваш XAML привязки должен работать. поэтому вместо выше вы могли бы сделать это:

protected void OnLoaded(obejct sender, RoutedEventArgs e) 
{ 
    this.DataContext = this; 
} 

то в вашем XAML вы можете сделать это:

<TabControl ItemsSource={Binding tabs} ... /> 
+0

. Спасибо, я просто подумал, что это лучше всего делать в xaml, но я думаю, что я поеду с привязкой к элементам itemssource. – Jakob

0

синтаксиса связывания Используйте WPF для XAML.

<YourControl ItemSource="{Binding tabs} /> 

Кроме того, необходимо установить DataContext элемента управления верхнего уровня (сетка, холст и т.д.), чтобы быть типом, который является владельцем коллекции вкладок (этот тип в случае, если вы не переименовывать класс вашего окна, будет быть Window1

Так, например, комбинируя, что с фрагментом XAML выше:.

<Grid DataContext="Window1"> 
.... 
.... 
     <YourControl ItemSource="{Binding tabs} /> 
.... 
.... 
    </Grid> 
+0

жаль, не было известно, что он получил отфильтрован мой XAML. Это то, что я пробовал, но не показал правильные вещи. Странно, что если я свяжусь с codebehind. tabcontrol.itemssource = tabs; все хорошо. Для аккуратности, однако, мне не нравится привязка к коду за – Jakob