Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法将模型绑定到TreeView_C#_Wpf_Xaml_Binding - Fatal编程技术网

C# 无法将模型绑定到TreeView

C# 无法将模型绑定到TreeView,c#,wpf,xaml,binding,C#,Wpf,Xaml,Binding,这是一个日志项目,标题提供项目名称,消息记录每个阶段。因此,每个标题都有许多消息 为了提问,我正在简化我的对象 我的日志类有两个属性 List<LogDetails> string Title 我无法将邮件绑定到我的XAML。标题可根据需要绑定 我的xaml代码: <Window x:Class="BackUps.Logging.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pr

这是一个日志项目,标题提供项目名称,消息记录每个阶段。因此,每个标题都有许多消息

为了提问,我正在简化我的对象

我的日志类有两个属性

List<LogDetails>
string Title
我无法将邮件绑定到我的XAML。标题可根据需要绑定

我的xaml代码:

<Window x:Class="BackUps.Logging.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:myData="clr-namespace:BackUps.Logging"
        Title="MainWindow"
        Height="350"
        Width="525">
  <Grid>
    <TreeView ItemsSource="{Binding}">
      <TreeView.ItemTemplate>
        <HierarchicalDataTemplate DataType="{x:Type myData:Log}"
                                  ItemsSource="{Binding LogDetailsList}">
          <TextBlock Text="{Binding Title}" />
          <HierarchicalDataTemplate.ItemTemplate>
            <DataTemplate DataType="{x:Type myData:LogDetails}">
              <StackPanel>
                <TextBlock Text="{Binding Message}" />
              </StackPanel>
            </DataTemplate>
          </HierarchicalDataTemplate.ItemTemplate>
        </HierarchicalDataTemplate>
      </TreeView.ItemTemplate>
    </TreeView>
  </Grid>

还有我的代码

  public MainWindow(List<Log> logs)
    {
        InitializeComponent();
        this.DataContext = logs;
    }
public主窗口(列出日志)
{
初始化组件();
this.DataContext=日志;
}
我的结果是(在这里您可以看到缺少的条目):

这是Auto的窗口,显示我试图绑定的对象


我错过了什么或做错了什么?

我过去也遇到过类似的问题,并通过(完全)将xaml更改为表单来修复它:

<Grid>
  <TreeView ItemsSource="{Binding}">
    <TreeView.Resources>
      <HierarchicalDataTemplate DataType="{x:Type myData:Log}"
                                ItemsSource="{Binding LogDetailsList}">
        <TextBlock Text="{Binding Title}" />
      </HierarchicalDataTemplate>
      <HierarchicalDataTemplate DataType="{x:Type myData:LogDetails}>
                        <TextBlock Text="{Binding Message}" />
      </HierarchicalDataTemplate>
    </TreeView.Resources>
  </TreeView>
</Grid>


嗨,保罗,可悲的是,同样的错误还在继续。我正在更新我的问题,以显示类属性和详细信息,因为这可能会有所帮助。这不是一个解决方案,但可能有助于调试,当您对内部数据模板使用
时会发生什么?Paul,如果我将其从更改为,则它会在屏幕上显示类型。所以,我只能假设它的属性名“Message”出于某种原因不受欢迎?是的!类型的全名:BackUps.Logging.LogDetailsIs
Message
作为公共属性实现?
<Grid>
  <TreeView ItemsSource="{Binding}">
    <TreeView.Resources>
      <HierarchicalDataTemplate DataType="{x:Type myData:Log}"
                                ItemsSource="{Binding LogDetailsList}">
        <TextBlock Text="{Binding Title}" />
      </HierarchicalDataTemplate>
      <HierarchicalDataTemplate DataType="{x:Type myData:LogDetails}>
                        <TextBlock Text="{Binding Message}" />
      </HierarchicalDataTemplate>
    </TreeView.Resources>
  </TreeView>
</Grid>