我有一个显示“名字/姓氏”模式的 UI。所以我想我会重复使用相同的模板。但我在正确绑定(bind)方面遇到了一些问题。
注意:-
PrimaryContactDataContext只不过是一个类,具有名为“value”的属性,该属性实现了 *INotifyPropertyChanged”接口(interface)。
<StackPanel>
<ContentControl DataContext="{Binding Path=PrimaryContactDataContext.Value,Mode=TwoWay}" ContentTemplate="{StaticResource PersonalDetailsTemplate}" />
</StackPanel>
// See the Reusable template below
<UserControl.Resources>
<DataTemplate x:Key="PersonalDetailsTemplate" >
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Width="30" Text="Name"></TextBlock>
<TextBox Width="110" Text="{Binding LastName}" IsReadOnly="True"></TextBox>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Width="30" Text="Title"></TextBlock>
<TextBox Width="110" Text="{Binding firstName}" IsReadOnly="True"></TextBox>
</StackPanel>
</StackPanel>
</DataTemplate>
</UserControl.Resources>
最佳答案
设置 ContentControl
的 Content
,而不是其 DataContext
:
<ContentControl Content="{Binding Path=PrimaryContactDataContext.Value,Mode=TwoWay}" ContentTemplate="{StaticResource PersonalDetailsTemplate}" />
关于wpf - 如何重用 wpf/mvvm 中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4694646/