我寻求有关使用WPF实现控制台日志查看器的最佳方法的建议.
它应符合以下标准:
总的来说,我有一些想法,如FireBug和Chrome的控制台窗口.
我玩这个但是我没有取得多大进展,因为...... - 数据网格无法处理不同的项目高度 - 滚动位置仅在释放滚动条后更新(这是完全不可接受的).
我很确定,我需要某种形式的虚拟化,并希望遵循MVVM模式.
欢迎任何帮助或指示.
在WPF中,我可以添加任何UI到ListBoxItem通过提供的S ListBox有ItemTemplate:
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderThickness="1" BorderBrush="Gray" CornerRadius="8" Padding="4,0,4,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<CheckBox Grid.Column="1" Content="Is Active Customer" IsChecked="{Binding IsActive}"/>
<Label Content="Id:" Grid.Row="1" HorizontalAlignment="Right"/>
<Label Content="Name:" Grid.Row="2" HorizontalAlignment="Right"/>
<TextBox Text="{Binding Id}" Grid.Row="1" Grid.Column="1"/>
<TextBox Text="{Binding Name}" Grid.Row="2" Grid.Column="1"/>
</Grid>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
结果是:

有没有办法在Windows窗体中实现相同的功能?
编辑:
1 -有什么办法,以实现在Windows窗体一样,同时保持separation of concerns之间View和Application Logic以这样的方式,如果我后来想完全重新定义View,我就不必重构整个应用程序?
2 - winforms是否支持数据绑定,使得我的每一个ListBoxItems都可以绑定到一个复杂的Entity,最终包括从Model数据到UI数据的中间类型转换,然后返回,这样我就不必写入大量的样板代码填充视图,然后将UI值传回模型以便保存? …