UWP アプリケーションで NavigationView を使用するチュートリアルにnavigation view
基づいてアプリを作成しています。誰かが2つのことを明確にするのを手伝ってくれることを願っています
一般的なルーチンを配置するベスト プラクティスは何ですか?
MainPage.xaml.cs
またはそれぞれのビューxaml
で?別のビュー
xaml
などで要素を更新するにはどうすればよいですか?textblock
例えば。readHardwareID
起動時にルーチンを実行してハードウェア ID を読み取りMainPage.xaml.cs
ますInfoPage.xaml
。
アドバイスしてください、ありがとう。
更新日: 2020 年 6 月 8 日
text
MainPageから InfoPage に単純な AppVerison を渡してテストしようとしていOnNavigateTo
ます。ただし、コードを実行してinfo
タブをクリックすると、このエラーが発生しました。
MainPage コード
public String AppVersionName = "Test version 1.0";
private void nvTopLevelNav_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
{
if (args.IsSettingsInvoked)
{
contentFrame.Navigate(typeof(SettingsPage));
} else
{
TextBlock ItemContent = args.InvokedItem as TextBlock;
if (ItemContent != null)
{
switch (ItemContent.Tag)
{
case "Nav_Home":
contentFrame.Navigate(typeof(HomePage));
break;
case "Nav_Devices":
contentFrame.Navigate(typeof(DevicesPage));
break;
case "Nav_Log":
contentFrame.Navigate(typeof(LogPage));
break;
case "Nav_Info":
contentFrame.Navigate(typeof(InfoPage));
break;
}
}
}
InfoPage コード
public sealed partial class InfoPage : Page
{
private MainPage mainPage;
string appVersion;
public InfoPage(MainPage page)
{
this.InitializeComponent();
mainPage = page;
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
var data = e.Parameter;
appVersion = mainPage.AppVersionName;
readHardwareID();
}
public void readHardwareID()
{
var deviceIdtoken = HardwareIdentification.GetPackageSpecificToken(null);
var deviceId = deviceIdtoken.Id;
var deviceIdReader = DataReader.FromBuffer(deviceId);
byte[] deviceIdbytes = new byte[deviceId.Length];
deviceIdReader.ReadBytes(deviceIdbytes);
DeviceID.Text = BitConverter.ToString(deviceIdbytes);
var sysIdToken = SystemIdentification.GetSystemIdForPublisher();
var sysId = sysIdToken.Id;
var sysIdReader = DataReader.FromBuffer(sysId);
byte[] sysIdbytes = new byte[sysId.Length];
sysIdReader.ReadBytes(sysIdbytes);
SystemID.Text = BitConverter.ToString(sysIdbytes);
// get the system family information
string deviceFamily = AnalyticsInfo.VersionInfo.DeviceFamily;
Device.Text = deviceFamily;
// get the system version number
var deviceFamilyVersion = AnalyticsInfo.VersionInfo.DeviceFamilyVersion.ToString();
var version = ulong.Parse(deviceFamilyVersion);
var majorVersion = (version & 0xFFFF000000000000L) >> 48;
var minorVersion = (version & 0x0000FFFF00000000L) >> 32;
var buildVersion = (version & 0x00000000FFFF0000L) >> 16;
var revisionVersion = (version & 0x000000000000FFFFL);
var systemVersion = $"{majorVersion}.{minorVersion}.{buildVersion}.{revisionVersion}";
OSVersion.Text = systemVersion.ToString();
AppVersion.Text = appVersion;
}
}