C# 如何为WPF属性制作模板?
在我的WPF XAML表单上,我有很多元素绑定到我的属性 对于每个属性,我将执行以下步骤:C# 如何为WPF属性制作模板?,c#,wpf,templates,properties,C#,Wpf,Templates,Properties,在我的WPF XAML表单上,我有很多元素绑定到我的属性 对于每个属性,我将执行以下步骤: <TextBlock Grid.Column="0" Grid.Row="0" Name="TB11" Text="{Binding TBX11}" VerticalAlignment="Center" HorizontalAlignment="Center" DataContext="{Binding RelativeSource={Relati
<TextBlock Grid.Column="0" Grid.Row="0" Name="TB11" Text="{Binding TBX11}"
VerticalAlignment="Center" HorizontalAlignment="Center"
DataContext="{Binding RelativeSource={RelativeSource Self}}" />
我现在甚至不知道我需要在这里写多少次同样的东西,但我不知道我是否能让它变得更简单?因为我需要从这里设置的是WPF块名和绑定名
我不知道我是否能让它变得更容易
您可以像这样使用MVVM框架
Caliburn将允许您将XAML重写为
<TextBlock Grid.Column="0" Grid.Row="0" Name="TB11"
VerticalAlignment="Center" HorizontalAlignment="Center"/>
有几种方法可以减少重复:
ItemsControl
和itemstemplate
创建重复的元素OnCaptionPropertyChanged
方法中设置TextBlock.Text
,您不应该这样做-此绑定将负责更新李>
TBX11
属性中,如果调用此方法OnPropertyChanged(“TBX11”)
,则不应向依赖项属性的getter或setter添加任何逻辑。不能保证这些将被调用TextBlock.DataContext
设置为自身,因此Text
绑定将无法工作李>
我真的不建议仅仅为了消除一些重复而向复杂的MVVM框架添加依赖项。WPF框架本身可以解决这个问题。
<TextBlock Grid.Column="0" Grid.Row="0" Name="TB11"
VerticalAlignment="Center" HorizontalAlignment="Center"/>