我正在讀取數據並將其輸出到交互式打印機映射中。打印機定位數據包含打印機的x座標,y座標,品牌,型號和IP。我使用這些數據創建一個圖像並定位它。問題在於,我試圖找出將圖像,模型和IP綁定到圖像的方法,以便在將來與其進行交互時可以輕鬆讀取它。例如,這樣的事情會很好: printerImage.Attribute("Make", "HP");
這是可能的/明智的嗎?將數據添加到silverlight中的元素
1
A
回答
2
自己創建類,如果你還沒有這樣做的話那有你需要的所有屬性,您的數據源可能已經提供這樣的目的。
全部FrameworkElements
包括Image
有一個Tag
屬性用於您的確切原因。
printerImage.Tag = instanceOfYourPrinterInfoClass;
然後,您可以retreive你需要的信息: -
YourPrinterInfoClass info = printerImage.Tag as YourPrinterInfoClass;
編輯
如此說來可能比Tag
一個更好的地方分配的對象是DataContext
。例如,您可以添加一個Tooltip,當鼠標懸停在圖像上時呈現這些細節。
1
我認爲你使用的是System.Windows.Controls.Image
,對嗎?在這種情況下,這是一個DependencyObject
,所以你可以定義和設置附加屬性。
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);
}
// ...
}
然後使用附加屬性是這樣的:
PrinterImageExtensions.SetPrinterMake(printerImage, "HP");
相關問題
- 1. 如何將元素添加到數據中的每個元素?
- 2. 將數據添加到列表元素
- 3. 添加數據元素到元素
- 4. 將元素添加到數組中 - Pascal
- 5. 將HTML元素添加到數組中
- 6. 將數據添加到每個函數中的元素
- 7. 將元數據添加到HTML元素的最佳方式
- 8. Angular2將元素添加到元素
- 9. 將MouseOverHandler添加到元素?
- 10. 將元素添加到JPanel
- 11. 將元素添加到UIAlertview
- 12. 將元素添加到JArray中的Json
- 13. 將元素添加到localStorage中的json
- 14. 將元數據添加到內存中
- 15. jQuery - 將元素添加到數組
- 16. 將元素添加到對象數組
- 17. 如何將元素添加到數組?
- 18. 將圖像添加到數組元素
- 19. 將事件添加到數組元素
- 20. 將元素添加到多維數組
- 21. 將元素動態添加到數組
- 22. 將char添加到數組元素
- 23. 將元素添加到bash數組
- 24. 將元素添加到char **參數
- 25. 將新元素添加到數組
- 26. 將函數javascript添加到元素jquery
- 27. 將元素添加到矢量數組
- 28. 將貨幣添加到數組元素
- 29. 將元素添加到數組,如json
- 30. 將元素自動添加到數組
對於這樣簡單的功能來說,這看起來很多。你知道任何其他方式來做到這一點嗎? – Vap0r
不幸的是,附加屬性確實帶有相當多的樣板代碼。如果您沒有使用xaml中的屬性,則getter和setter不是嚴格要求的。如果你擺脫了它們,你需要調用'printerImage.SetValue(PrinterMakeProperty,「HP」)'來設置值,或者'(string)printerImage.GetValue(PrinterMakeProperty)'來獲取值。你也可以在使用它的類中定義附加的屬性,而不是在它自己的靜態類中。 – dcstraw
@HiTech:附加屬性根本不適合完成這項任務。即使使用了附加屬性,我們也不希望爲它們創建過多的屬性,對於打印機的每個方面都有一個屬性。相反,我們會創建一個持有特定「PrinterInfo」類型的類型。即使這樣,我看到使用附加的財產這項工作沒有任何好處。有時候我們可以稍微運用一些聰明的技術,即使這些老式的技術也可以工作,甚至更好。 – AnthonyWJones