TextBlockに数値を表すことぐらい何ともないやと思っていたら全然そんなことはなかったので忘備録として残す。
まずはじめに
UWPでTextBlockに何かしらの内容を追加しようとするときは、必ずデータ型がPlatformString型にしなければいけない。(ここで躓いた)
テキストにしろ数値にしろ、通常のInt型やString型のままではこの中に突っ込めない。だから先に変換してやる必要がある。
変換方法
ざっくり言って
1, 任意のデータ型からwstring型に変換する
2, wstring型からPlatformString型へ変換する
直接PlatformString型へ変換できればよかったのだがやり方わかんなかった(テヘペロ
コードは以下の通り。
この例ではInt型の"num"をTextBlockの"Number"に入れるまでである。
#include <string> //std::to_wstringを使うため必須
~省略
int Num;//任意のデータ
std::wstring wsNum; //wstring型への返還のための変数
wsNum = std::to_wstring(Num); //ここでwstring型へIng型から変換
Platform::String ^outSt = ref new Platform::String(wsNum.c_str());
//ここで出力用変数を宣言してから変換
Number->Text = outSt; //出力
一番最初にstringをインクルードしているが、VisualStuioで新規に作っただけだと最初からはインクルードされていないので追記してやる必要がある。
ちなみに、PlatformString型で変数宣言するときは
Platform::String ^ST;
と
String^ ST;
はまったく同じ内容である。短いほうが何かとすっきりしやすいかもしれない