我正在观看一个名为How Do I: Use Attached Properties to Store Extra Data in WPF的“操作方法”类型的WPF视频,它描述了当您想要将两条信息与一个控件关联时要执行的操作。如果你想要输入一条信息,他们会说要使用Tag属性。
<Grid>
<TextBox Tag="innerData">
</Grid>
足够公平。
然后他们说,“如果你想存储第二个数据,比如整数,会发生什么?”他们说解决方案是使用未使用的附加属性。
<Grid>
<TextBox Tag="innerData" Canvas.Top="55">
</Grid>
他们说因为它在网格中,没问题!我说“Bleh!”这让我觉得非常讨厌......并且读起来很容易让人误解。这是常见做法吗?
答案 0 :(得分:3)
是的,这是一种气味。
我不确定它是否常见 - 我以前从未见过它。
坦率地说,我发现Tag
本身就是一种框架认可的气味。
答案 1 :(得分:2)
它既快速又简单,但最好定义自己的附加属性或自定义控件来处理这些情况。这种类型的东西可以用于原型或快速的一次性应用程序,但如果代码将具有需要维护的实际生命周期,则不应该这样做。
答案 2 :(得分:1)
不是最佳做法。
我一直认为,代码(包括Xaml)是人类可读的。
需要花费大量的研究来确定谁在使用该属性,以及用于什么。
答案 3 :(得分:0)
这种技术可以节省时间。使用它告诉你,“我不应再浪费时间研究这些培训材料。”