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.LogDetailsIsMessage
作为公共属性实现?
<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>