私はデータを読み込んで対話型プリンタマップに出力しています。プリンタ位置決めデータには、プリンタのx座標、y座標、メイク、モデル、およびIPが含まれます。私はこのデータを使ってイメージを作成し、それを配置します。問題は、make、モデル、およびIPをイメージにバインドする方法を理解しようとしているため、将来のやりとりで簡単に読むことができるということです。たとえば、次のようなものが良いでしょう: printerImage.Attribute("Make", "HP");
これは可能ですか?Silverlightの要素にデータを追加する
1
A
答えて
2
は、それはあなたが必要とするすべてのプロパティを持っているので、あなたはまだ行っていない場合は、クラスを自分で作成し、データソースは、すでに提供することができる。
public static class PrinterImageExtensions
{
public static readonly DependencyProperty PrinterMakeProperty =
DependencyProperty.RegisterAttached("PrinterMake", typeof(string), typeof(ImageExtensions), new PropertyMetadata(null));
public static string GetPrinterMake(Image obj)
{
return (string)obj.GetValue(PrinterMakeProperty);
}
public static void SetPrinterMake(Image obj, string value)
{
obj.SetValue(PrinterMakeProperty, value);
}
// ...
}
次に、このように添付プロパティを使用しますオブジェクト。
Image
を含むすべてFrameworkElements
には、正確な理由で使用されるTag
プロパティがあります。あなたはその後、あなたが必要とする情報を盗んでき
printerImage.Tag = instanceOfYourPrinterInfoClass;
: -
YourPrinterInfoClass info = printerImage.Tag as YourPrinterInfoClass;
編集
は、おそらくオブジェクトを割り当てるTag
より良い場所がDataContext
であると述べました。たとえば、マウスが画像の上に移動したときにこれらの詳細をレンダリングするツールチップを追加することができます。
1
あなたはSystem.Windows.Controls.Image
を使用していますが、正しいですか?その場合はDependencyObject
なので、添付プロパティを定義して設定することができます。
PrinterImageExtensions.SetPrinterMake(printerImage, "HP");
関連する問題
- 1. 追加データは、マーカー要素
- 2. Silverlight要素にバインディングルールを追加できますか?
- 3. 要素を要素に追加する
- 4. JSONデータをHTML要素に追加
- 5. リスト要素にデータを追加
- 6. 要素にデータ属性の値を追加する
- 7. レポートビルダー3.0アレイにデータ要素を追加する
- 8. 配列の最後の要素に要素を追加する
- 9. 要素をビューアニメーションに追加するクラス、アニメーションを追加する
- 10. 2つの親要素に要素を追加する
- 11. 要素にクラス要素を追加する際の問題
- 12. odoo xpath要素内に既存の要素を追加する
- 13. リスト内の要素間に要素を追加する
- 14. SilverlightのDataGridにデータを手動で追加する方法
- 15. ノックアウトjs、配列に追加の要素を追加する
- 16. リスト要素をul要素に動的に追加する
- 17. 要素をSeqに追加する
- 18. ベクトルに要素を追加する
- 19. セレンにWeb要素を追加する
- 20. ArrayListに要素を追加する
- 21. リストに要素を追加する
- 22. Scala:リストに要素を追加する
- 23. ポリマー要素にビヘイビアを追加する
- 24. リンクリストに要素リストを追加する
- 25. Jquery、要素にクラスを追加する
- 26. html要素にイベントを追加する
- 27. pythonジェネレータに要素を追加する
- 28. フレックスチャートにカスタム要素を追加する
- 29. 要素に属性を追加する
- 30. コレクション - コレクションに要素を追加する
これは、このような単純化された機能性のためにたくさんあるようです。これを行う他の方法を知っていますか? – Vap0r
残念なことに、接続プロパティには定型コードがかなり含まれています。 xamlでプロパティを使用していない場合は、getterとsetterは厳密には必要ありません。もしそれらを取り除けば、 'printerImage.SetValue(PrinterMakeProperty、" HP ")'を呼び出して値を設定するか、 '(string)printerImage.GetValue(PrinterMakeProperty)'を呼び出して値を取得する必要があります。また、独自の静的クラスではなく、それを使用するクラスの添付プロパティを定義することもできます。 – dcstraw
@HiTech:添付されたプロパティは、このタスクにはあまり適していません。付属のプロパティを使用する場合でも、プリンターの各側面ごとに1つずつ、たくさんのプロパティを作成することは望ましくありません。むしろ、特定の「PrinterInfo」タイプを保持するものを作成します。それでも、私はこの仕事に付随する財産を使うことに何の利益も見ません。時には、昔ながらのものでもうまく機能している場合でも、巧妙なテクノロジーを適用するのが少し難しい場合があります。 – AnthonyWJones