Начиная с демонстрационного примера MahApps-Material , я пытаюсь использовать событие нажатия кнопки, чтобы создать новый TabItem
из моих просмотров.На данный момент CustomTabItem
покажет текст, привязанный к некоторому свойству из FancyObject
(который будет передан в View из моего FancyTabViewModel
).Но у меня DataContext, свойство зависимости или привязка сделаны неправильно.
public void NewTabOnClick(object sender, RoutedEventArgs e)
{
// create my new object from Models
FancyObject fo = new FancyObject();
// create the INofify VM and pass it my object
// the VM has a public VMFancyObject property to serve the fo
FancyTabViewModel fvm = new FancyTabViewModel(fo);
// create the new UserControl and set its context to the VM
CustomTabItem newTab = new CustomTabItem() {
Header = "New tab"
};
newTab.DataContext = fvm;
MainWindowTabs.Items.Add(newTab);
}
И в моем <TabItem x:Class="MyProject.Views.CustomTabItem"
есть метка с такой привязкой: <Label Content="{Binding VMFancyObject.SomeList.Count}"/>
Я ожидаю, чтосм. счетчик по умолчанию для списка, созданного в конструкторе FancyObject
.Однако после того, как новая вкладка создана и добавлена в dragablz:TabablzControl
, я просто вижу пустой ярлык.
Я тоже пробовал <Label DataContext="{Binding Path=DataContext.FancyTabViewModel,RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}" Content="{Binding VMFancyObject.SomeList.Count}" HorizontalAlignment="Left" Margin="341,196,0,0" Foreground="Black" Background="#FF97FF02"/>