WPF TabControl ContentTemplate列表

时间:2014-05-12 12:14:39

标签: wpf list tabcontrol contenttemplate

对WPF缺乏经验,所以我需要一些帮助。提前感谢您的帮助。

我有以下课程:

public class TabDefn
{
    public TabDefn() { }

    public TabDefn(string inFolderName, List<FilesFolder> inFilesFolders)
    {
        folderName = inFolderName;
        FFs = inFilesFolders;
    }

    public string folderName { get; set; }
    public List<FilesFolder> FFs {get; set;}
}

public class FilesFolder
     {
    public FilesFolder() {}

    //public Image image { get; set; }
    public string ffName { get; set; }
    //public Image arrow { get; set; }
}

TabControl.ItemContent工作正常。 TabControl.ContentTemplate我无法得到任何东西。我尝试了很多东西,但这就是WPF现在的位置:

<TabControl Grid.Column="1" Grid.Row="1" Visibility="Hidden" Name="Actions">
   <!-- This displays the tab heading perfectly.-->
   <TabControl.ItemTemplate>
      <DataTemplate>
         <TextBlock Text="{Binding folderName}" />
      </DataTemplate>
   </TabControl.ItemTemplate>
   <!-- This is the content of the tab that I can't get anything to show up in.-->
   <TabControl.ContentTemplate>
      <DataTemplate>
         <ListBox ItemsSource="{Binding FF}">
            <ListBox.ItemTemplate>
               <DataTemplate>
                  <StackPanel Orientation="Horizontal">
                     <TextBox Text="{Binding ffName}"  />
                  </StackPanel>
               </DataTemplate>
            </ListBox.ItemTemplate>
         </ListBox>
      </DataTemplate>
   </TabControl.ContentTemplate>
</TabControl>

我不在乎内容是否发生变化,因此我不需要INotifyPropertyChangedObservableCollection。但是,如果我必须将所有代码放入,那就这样吧。

1 个答案:

答案 0 :(得分:0)

您将FF声明为无效绑定源的字段。您需要将其转换为属性

public List<FilesFolders> FF { get; set; }

并在TabDefn构造函数中初始化它。您可以在MSDN

上找到有关什么是有效绑定源的更多信息