none
wpf 如何在外部修改自定义控件的内部数据模板 RRS feed

  • 问题

  • <UserControl>
    <StackPanel>
    <UserControlA/>
    <ListBox ItemTemplate="{StaticResource DataTemplate1}"/>
    <UserControlB/>
    </StackPanel>
    </UserControl>

    如上我有一个自定义控件包含<UserControlA/>、<ListBox>、<UserControlB/>,在多个Page上使用,而他们唯一的不同点是自定义控件内<ListBox>的数据模版不同,我该如何将<ListBox>的数据模版在Page的xaml上修改<ListBox>的数据模版。

    如果使用数据模版选择器的话,模板内控件的诸如点击事件无法委托到Page上。该如何做。

    Ths

    2013年12月4日 7:31

答案

  • 搞定了,修改

    <ListBox ItemTemplate="{Binding UserControlDataTemplate}"/>

    然后就可以在

    <Page1>
    <UserControl UserControlDataTemplate="{StaticResource DataTemplate1}">
    </Page1>
    <Page2>
    <UserControl UserControlDataTemplate="{StaticResource DataTemplate2}">
    </Page2>

    呵呵 这么简单的

    但是使用数据模版选择器的话,模板内控件的诸如点击事件无法委托到Page上,还是不知道是怎么回事

    2013年12月4日 7:52

全部回复

  • DynmicResource
    2013年12月4日 7:39
  • 搞定了,修改

    <ListBox ItemTemplate="{Binding UserControlDataTemplate}"/>

    然后就可以在

    <Page1>
    <UserControl UserControlDataTemplate="{StaticResource DataTemplate1}">
    </Page1>
    <Page2>
    <UserControl UserControlDataTemplate="{StaticResource DataTemplate2}">
    </Page2>

    呵呵 这么简单的

    但是使用数据模版选择器的话,模板内控件的诸如点击事件无法委托到Page上,还是不知道是怎么回事

    2013年12月4日 7:52