我有以下要求,我有4页。前3页提示用户输入一些信息,最后在第四页上我做了一些处理并显示结果。
我提出了这种方法。我创建了一个类,所有现场用户都可以在各种页面中输入
ref class CameraWiFiInfo sealed
{
public:
property String^ sCameraName;
property String^ sWiFIName;
property String^ sWifiPassword;
CameraWiFiInfo()
{
sCameraName = ref new String;
sWiFIName = ref new String;
sWifiPassword = ref new String;
}
};
我正在尝试传递此对象,如下所示
PAGE #1
CameraWiFiInfo^ cameraInfo = ref new CameraWiFiInfo();
cameraInfo->sCameraName = txtCameraName->Text;
this->Frame->Navigate(TypeName(WifiCheck::typeid),cameraInfo);
PAGE#2
void Page2::OnNavigatedTo(NavigationEventArgs^ e)
{
(void) e; // Unused parameter
CameraWiFiInfo^ cameraInfo= e->Parameter ;
}
我在这里收到错误错误C2440:'初始化':无法转换为' Platform :: Object ^'到了CameraWiFiInfo ^'。
我在网上瞪眼我没有得到任何合适的C ++ / Win Rt XAML示例来将数据从一个XAML页面传递到另一个。如果有人试过数据传递C ++ / Win Rt请在此建议。
答案 0 :(得分:0)
你需要一个明确的演员:
CameraWiFiInfo^ cameraInfo= (CameraWiFiInfo^)e->Parameter;
但是在执行此操作时要小心,根据the documentation:
要使用
GetNavigationState
启用帧状态的序列化,必须仅将基本类型传递给此方法,例如字符串,字符,数字和GUID类型。 [...]通常,我们不鼓励将非基本类型作为参数传递给Navigate
,因为它在应用程序暂停时无法序列化,并且可能消耗更多内存[...]