小编Sam*_*med的帖子

动态添加TabItems

TabControl控制了一下

<TabControl Name="Farms_myVillages"
            ItemsSource="{Binding Villages}">
</TabControl/>
Run Code Online (Sandbox Code Playgroud)

在后面的代码中,我动态添加一些选项卡TabControl,如下所示:

foreach (Village vill in Villages)
{
    TabItem tab = new TabItem();
    tab.Header = vill.Name;
    VillageUserControl c = new VillageUserControl();
    c.DataContext = vill;
    tab.Content = c;
    Farms_myVillages.Items.Add(tab);
}
Run Code Online (Sandbox Code Playgroud)

这里VillageUserControl是一个UserControl以指定村处理.这段代码工作正常,它得到了预期的结果......

问题是我不希望这个代码落后于代码xaml本身.

我试试这个:

<TabControl Name="Farms_myVillages"
            ItemsSource="{Binding Villages}">
      <TabControl.ItemContainerStyle>
          <Style TargetType="TabItem">
              <Setter Property="Header" Value="{Binding Name}"/>
              <Setter Property="Content">
                 <Setter.Value>
                    <u:VillageUserControl DataContext="{Binding}"/>
                 </Setter.Value>
              </Setter>
          </Style>
      </TabControl.ItemContainerStyle>
</TabControl>
Run Code Online (Sandbox Code Playgroud)

在我运行它之后,它抛出一个异常:"指定的元素已经是另一个元素的逻辑子元素.首先断开它."

我错过了什么?请帮帮我......

c# data-binding wpf xaml tabcontrol

9
推荐指数
1
解决办法
2万
查看次数

wpf按钮单击事件

在这个问题我问了一下添加TabItems动态到TabControlItemsSource来自ObservableCollection<Village>..我的问题是,如果添加一个按钮,任何TabItem,此按钮将有DataContext其容器的TabItem,我怎么能实现此按钮的Click事件?

wpf datacontext observablecollection

2
推荐指数
1
解决办法
5301
查看次数