Создание нового UserControl программно при настройке DataContext для облегчения привязки - PullRequest
0 голосов
/ 30 декабря 2018

Начиная с демонстрационного примера 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"/>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...