У меня проблема с привязкой. У меня есть сетка, и я хочу отобразить в ней фреймы. Кадры должны отображать страницы, которые хранятся в векторе ItemsSource. Но почему-то это не отображается.
статически жестко это работает:
XAML
<Frame x:Name="testFrame"/>
C ++
testFrame->Content = ref new TrainPanel;
Теперь я добавил вектор на свою главную страницу и сохранил там TrainPanel:
час
Vector<Platform::Object^>^ m_frameList;
C ++
m_frameList->Append(ref new TrainPanel);
panelGrid->ItemsSource = m_frameList;
XAML
<GridView x:Name="panelGrid" HorizontalAlignment="Center" Grid.Row="1" MaxWidth="{Binding width}" IsItemClickEnabled="False">
<GridView.ItemTemplate>
<DataTemplate>
<Frame x:Name="templateFrame" Content="{Binding Object}" Height="693" Width="Auto"/>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
и у моего TrainPanel есть свойство под названием Object:
#pragma once
#include "TrainPanel.g.h"#include "TrainManager.h"#include "Train.h"#include "MainPage.xaml.h"
namespace TrainControl
{
/// <summary>
/// Eine leere Seite, die eigenständig verwendet werden kann oder auf die innerhalb eines Rahmens navigiert werden kann.
/// </summary>
[Windows::Foundation::Metadata::WebHostHidden]
public ref class TrainPanel sealed
{
public:
TrainPanel();
virtual ~TrainPanel();
property Windows::Foundation::Collections::IObservableVector<Platform::Object^>^ TrainList
{
Windows::Foundation::Collections::IObservableVector<Platform::Object^>^ get()
{
if (m_trainList == nullptr)
m_trainList = ref new Platform::Collections::Vector<Platform::Object^>();
return m_trainList;
}
}
property Platform::Object^ Object
{
Platform::Object^ get() { return this; }
}
private:
Platform::Collections::Vector<Platform::Object^>^ m_trainList;
Train^ m_currentTrain;
bool m_sliderHolding;
private:
void closePanel_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
void ctNameCombo_DropDownOpened(Platform::Object^ sender, Platform::Object^ e);
void ctNameCombo_SelectionChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::SelectionChangedEventArgs^ e);
void ctSlider_ValueChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventArgs^ e);
void ctSlider_ManipulationStarted(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs^ e);
void ctSlider_ManipulationCompleted(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs^ e);
void ctChangeDirection_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
void ctSounds_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
};
}
Но это не работает. Страница не отображается.
Есть идеи, почему не работает привязка ??
Задача ещё не решена.
Других решений пока нет …