[英]WPF datagrid not showing data
我有一個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>
在預覽中我沒有看到我想要看到的列(修訂版,操作碼等),當我運行程序時,我沒有任何列或數據,為什么會發生這種情況?
Ps我有Message.Revision內的數據等等我檢查了
編輯 :
視圖模型,其中我有Message屬性,我用作項目源:
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>
:
<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>
您需要綁定到一個集合。 嘗試定義一個只返回Message
的ObservableCollection
。
public ObservableCollection<Model.Message> Messages
{
get { return new ObservableCollection<Model.Message> { Message }; }
}
您必須在<DataGrid.Columns>
標記下添加Columns
。
<DataGrid>
<DataGrid.Columns>
.... // Add columns here.
</DataGrid.Columns>
</DataGrid>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.