我使用WPF工具包中的DataGrid - 最新的一個。但是,下面的代碼是不工作WPF DataGrid列綁定被自動生成的列覆蓋
XAML代碼
<dg:DataGrid
Grid.Row="1"
Name="eventLogGrid"
Margin="5,0,5,0"
BorderBrush="Black"
ItemsSource="{Binding EventLogs}"
SelectionMode="Single"
IsReadOnly="True">
<dg:DataGrid.Columns>
<dg:DataGridTextColumn
Binding="{Binding EventID}" Header="Event ID" />
<dg:DataGridTextColumn
Binding="{Binding Server}" Header="Server" />
<dg:DataGridTextColumn
Binding="{Binding Source}" Header="Source" />
<dg:DataGridTextColumn
Binding="{Binding Logged}" Header="Logged" />
</dg:DataGrid.Columns>
</dg:DataGrid>
C#代碼
public class EventLogItem
{
public long EventID { get; set; }
public string Name { get; set; }
public string Message { get; set; }
public Server Server { get; set; }
public string Source { get; set; }
public EventLogEntryType Level { get; set; }
public DateTime Logged { get; set; }
public string Machine { get; set; }
}
public List<EventLogItem> EventLogs
{
get { return (List<EventLogItem>)GetValue(EventLogsProperty); }
set { SetValue(EventLogsProperty, value);
}
這裏真正的問題是,雖然我指定的列以及其在XAML代碼的結合,但是當數據到達後,每個屬性都佔據一列。所需的效果是隻顯示了所綁定的屬性。
什麼是[綁定錯誤](http://www.zagstudio.com/blog/486) – Tilak
綁定是不是被通知添加到集合中的新元素?如果您使用'ObservableCollection'而不是'List ',會發生什麼? –
ceyko
好吧,我會嘗試使用它。這裏的問題是,當我設置EventLogs屬性時,顯示的所有屬性而不是我綁定的那4列真的很令人沮喪。 – imgen