IValueConverter::Convert
に入れる language が null
C++/CX を触った人なら知ってるかと思いますが、
- C# の
System.String
型null
は C++/CX のPlatform::String
型へのマーシャリングの際、例外になります。 - C# の
System.String
型System.String.Empty
は C++/CX のPlatform::String
型の Empty になります。 - その他はそのままです。
しかし x:Bind
を使うと以下のようなコードが生成されてしまいます。
private void Update_MainPageViewModel_StatusBarColor_IsEnabled(global::System.Boolean obj, int phase) { if((phase & ((1 << 0) | NOT_PHASED | DATA_CHANGED)) != 0) { XamlBindingSetters.Set_Windows_UI_Xaml_UIElement_Visibility( this.obj23, (global::Windows.UI.Xaml.Visibility)this.LookupConverter("BooleanToVisibilityConverter").Convert( obj, typeof(global::Windows.UI.Xaml.Visibility), null, null)); } }
つまり x:Bind は C# アプリから C++/CX の API 群を使うときには現時点では使えません。global::System.String.Empty
にしてほしい…
以上。