wpf - 如何重用 wpf/mvvm 中的内容

标签 wpf mvvm

我有一个显示“名字/姓氏”模式的 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>

最佳答案

设置 ContentControlContent,而不是其 DataContext:

<ContentControl Content="{Binding Path=PrimaryContactDataContext.Value,Mode=TwoWay}"  ContentTemplate="{StaticResource PersonalDetailsTemplate}"  />

关于wpf - 如何重用 wpf/mvvm 中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4694646/

相关文章:

wpf - Background "Red"中的字符串="Red"如何转换为SolidColorBrush?

asp.net-mvc - AutoMapper 中是否有办法指定所有被映射的字符串都将被修剪

MVVM - 自定义模型的 MutableLiveData 没有通过数据绑定(bind)更新到 ViewModel 并且始终为空

.net - 我应该如何从 ViewModel 触发警报?

c# - 从其他窗口刷新组合框列表,MVVM

wpf - 下拉菜单中的默认文本

c# - WPF 图像控件 : Trigger stops working once Source is modified in code

c# - WPF 应用程序中的复合 ViewModel

c# - WPF - 带有按钮项的组合框

mvvm - 订阅 propertyChanged 事件 PostSharp