我有一个具有挑战性的问题。我的要求就像我有一个xml文件,其值为
Name 0,20
age 21,4
这就像字段名称值将在以下位置。我的xml文件中有100条这样的记录。我想动态读取这个布局的xml文件。并比较两个不同公司生成的两个输出文件。 Output1和Output2 ...其中位置处的Name和位置处的年龄的值将在那里。我想读取值并手动向用户显示这些区域的两个文件存在差异。
.net,C#windows,wpf app中是否有可用的动态查看器控件在两个文件中显示这些差异?
答案 0 :(得分:2)
答案 1 :(得分:1)
如果你设计一个像......
这样的类,WPF中现有的DataGrid类可以很好地满足这个需求public class Difference
{
public string PropertyName { get; set; }
public string File1Value { get; set; }
public string File2Value { get; set; }
}
这个课程会有所不同。每次找到希望用户看到的差异时,您都会创建此类的实例,并将每个实例添加到集合中...
public ObservableCollection<Difference> Differences = new ObservableCollection<Difference>();
此集合将绑定到DataGrid的ItemsSource属性。
使用此方法,您无需创建新控件或使用第三方控件。如果您想要打开列标题,可以使用DataGridColumns和模板。
答案 2 :(得分:1)
我想到的几种可能的解决方案之一是:
WPF RichTextBox
,您是否可以加载完整的格式化文本和格式/颜色部分,您可以使用它来突出显示的差异。 WPF RichTextBox Sample1 WPF RichTextBox Sample2
您需要考虑WPF TextBox
基本上易于使用,但也会沉迷于消耗大量内存,因此请密切关注应用的内存消耗。
您自然可以使用其他编辑器,例如Scintilla,但我认为此案例中的故事变得更加复杂。
修改强> 可能有另一个非编程解决方案,只是使用WinMerge并使用所需参数运行该程序(免费)。所以它会关心显示/突出显示两个不同文件之间的差异。
选择取决于你。