我正在使用PropertyGrid,并通过定义自定义属性模板来覆盖标准编辑框和自定义NumerictextBox,如下所示:
<attributeTemplates:AccountSetupTemplates.NumericTextBox>
<DataTemplate DataType="{x:Type viewModels:AccountSetupViewModel}">
<Grid>
<TextBox DataContext="{StaticResource AccountSetupViewModel}" MaxLength="7" Text ="{Binding Attributes.Port}">
<i:Interaction.Behaviors>
<behaviors:NumericTextBoxBehavior/>
</i:Interaction.Behaviors>
</TextBox>
</Grid>
</DataTemplate>
</attributeTemplates:AccountSetupTemplates.NumericTextBox>
然后我用PropertyGrid替换PropertyGrid中的标准编辑框。如您所见,此特定NumericTextBox绑定到Port字符串。
问题是还有其他几种情况应该使用NumericTextBox(大约五种情况),在每种情况下,控件都需要绑定到除Port之外的其他字符串。
目前,这意味着我必须定义几个这样的属性模板,这看起来很愚蠢。有没有一种方法可以多次重复使用相同的attributeTemplate,每个实例绑定到不同的属性字符串?
感谢。