WPF datagrid不显示数据 [英] WPF datagrid not showing data
本文介绍了WPF datagrid不显示数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个datagrid:
I have a datagrid:
<DataGrid Name="messageGrid">
<DataGridTextColumn Header="Revision" Binding="{Binding Message.Revision}"></DataGridTextColumn>
<DataGridTextColumn Header="Opcode" Binding="{Binding Message.Opcode}"></DataGridTextColumn>
<DataGridTextColumn Header="Reason" Binding="{Binding Message.Reason}"></DataGridTextColumn>
<DataGridTextColumn Header="Reaction" Binding="{Binding Message.Reaction}"></DataGridTextColumn>
<DataGridTextColumn Header="Projects" Binding="{Binding Message.Projects}"></DataGridTextColumn>
<DataGridTextColumn Header="Links" Binding="{Binding Message.Links}"></DataGridTextColumn>
<DataGridTextColumn Header="Notes" Binding="{Binding Message.Notes}"></DataGridTextColumn>
</DataGrid>
在预览中我看不到我想看到的列(修订版,操作码等) 。)当我运行程序时,我内没有任何列或数据,为什么会发生这种情况?
On the preview I don't see the columns that I wanted to see (Revision, Opcode, etc.) and when I run the program i don't have any columns or data inside, why is that happening?
Ps
我在Message.Revision中有数据,所以我检查了
P.s I have data inside Message.Revision and so on i checked that
编辑:
视图模型,我使用Message属性作为项目来源:
the view model where i have the Message property that i use as items source:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;
using System.Windows.Input;
using YogevAfekaRAPAT.YNIDS.Helpers;
using System.Diagnostics;
using System.Data;
namespace YogevAfekaRAPAT.YNIDS.ViewModels
{
public class MessageDetailsViewModel : NotificationObject
{
#region Private Data Members
private Model.Message message;
private ObservableCollection<Model.MType> types;
//private FileManager.fileManager fileManager;
private Logger.Logger logger;
#endregion
#region Properties
#region Types
private ObservableCollection<Model.MType> _types;
public ObservableCollection<Model.MType> Types
{
get { return _types; }
set
{
if (_types != value)
{
_types = value;
}
}
}
#endregion
#region Message
public Model.Message Message
{
get
{
return message;
}
set
{
if (message == value)
{
return;
}
message = value;
RaisePropertyChanged(() => Message);
}
}
#endregion
#endregion
#region Ctor
public MessageDetailsViewModel(Model.Network network, String messageName)
{
fileManager = FileManager.fileManager.getFileManager();
//Message = network
Message = network.getMessageFromName(messageName);
Debug.WriteLine("Inside: public MessageDetailsViewModel(Model.Network network, String messageName) messageName = " + messageName + " Message.Desc = " + Message.Opcode);
}
#endregion
}
}
推荐答案
您忘记将列定义包含在< DataGrid.Columns> / code>:
You forgot to enclose your columns definitions inside <DataGrid.Columns>
:
<DataGrid Name="messageGrid">
<DataGrid.Columns>
<DataGridTextColumn Header="Revision" Binding="{Binding Message.Revision}" />
<DataGridTextColumn Header="Opcode" Binding="{Binding Message.Opcode}" />
<DataGridTextColumn Header="Reason" Binding="{Binding Message.Reason}" />
<DataGridTextColumn Header="Reaction" Binding="{Binding Message.Reaction}" />
<DataGridTextColumn Header="Projects" Binding="{Binding Message.Projects}" />
<DataGridTextColumn Header="Links" Binding="{Binding Message.Links}" />
<DataGridTextColumn Header="Notes" Binding="{Binding Message.Notes}" />
</DataGrid.Columns>
</DataGrid>
您需要绑定到集合。尝试定义一个 ObservableCollection
,它只返回消息
。
public ObservableCollection<Model.Message> Messages
{
get { return new ObservableCollection<Model.Message> { Message }; }
}
这篇关于WPF datagrid不显示数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文