0

自動生成されたパスの g コードを生成する Windows 8 アプリ (自分用) を作成しています。g コードを生成するときは、アプリ内で自分で作成および編集できるテキスト テンプレートを使用したいと考えています。{binding path} 表記に従うのは良い考えだと思ったので、私のテンプレートは次のようになります

"{binding Gcode.LinearMove} {binding Axis.X} {binding CurrentPoint.X } .... " データバインド後に "G1 X 90 ..." を与える。

すべてのオブジェクト Gcode、Axis、CurrentPoint は、コード ジェネレーターの DataContext の一部として定義できます。

私は現在、StringBuilder を使用して構築され、表示用に ListView に渡された単純な文字列を使用し、フォーマットを使用して値を置き換えていますが、もちろん、これはコードで使用するプロパティを固定し、制限的です。正規表現を使用して置き換えられた特定のテンプレート名で遊んだことがありますが、置換値はコードで凍結されていました。

編集可能なテンプレートを使用すると、実行時に使用するプロパティを動的に選択する自由度が大幅に高まると考えました。

私の質問は、既存のメトロ クラスとデータ バインディングの .net 実装を使用してこれを行うことは可能ですか、それともゼロから始める必要がありますか? バインディングは非表示および非 UI コントロール上にあることに注意してください。何千行もの gcode のリストに Textblocks を使用するのは、リソースの観点からばかげていると思いました。また、マルチバインディングがアプリで利用できないことをどこかで読みました。

アラン

4

1 に答える 1

0

はい、TextBlock または RichTextBlock を使用して、個々の Run を表示するプロパティにバインドできます。コード ビハインドが変更されると (INotifyPropertyChange が正しく実装されている限り)、画面上のテキストは期待どおりに更新されます。

バインド実行に関する良い記事を次に示します。

http://tozon.info/blog/post/2012/10/16/Windows-Store-apps-the-case-of-missing-StringFormat-or-Binding-on-the-Run.aspx

開発サポート、設計サポート、その他の優れた機能が進行中: http://bit.ly/winappsupport

于 2013-02-18T20:58:57.880 に答える