Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从IDifferenceViewer';左视图是什么?_C#_Visual Studio_Visual Studio 2017_Visual Studio Extensions_Visual Studio 2019 - Fatal编程技术网

C# 如何从IDifferenceViewer';左视图是什么?

C# 如何从IDifferenceViewer';左视图是什么?,c#,visual-studio,visual-studio-2017,visual-studio-extensions,visual-studio-2019,C#,Visual Studio,Visual Studio 2017,Visual Studio Extensions,Visual Studio 2019,我希望能够编辑来自IDifferenceViewer的左侧ITextView(LeftView属性)的ITextBuffer,但一旦构建完成,调用IsReadOnly()时,LeftView即为只读。如何允许LeftView的ITextBuffer可编辑 var diffService = (IVsDifferenceService)_serviceProvider.GetService(typeof(SVsDifferenceService)); //roles don't seem to

我希望能够编辑来自IDifferenceViewer的左侧ITextView(
LeftView
属性)的ITextBuffer,但一旦构建完成,调用
IsReadOnly()
时,LeftView即为只读。如何允许LeftView的ITextBuffer可编辑

var diffService = (IVsDifferenceService)_serviceProvider.GetService(typeof(SVsDifferenceService));

//roles don't seem to do anything...
string roles = null; //$"{PredefinedTextViewRoles.Editable},{PredefinedTextViewRoles.PrimaryDocument},{PredefinedTextViewRoles.Document},{PredefinedTextViewRoles.Interactive},DIFF";
var frame = diffService.OpenComparisonWindow2(filePath1, filePath2,
    $"Your version vs Other version",
    filePath1 + Environment.NewLine + filePath2,
    filePath1,
    filePath2, null, null, 0);
var diffViewer = GetDiffViewer(frame);
diffViewer.LeftView.TextBuffer.IsReadOnly(0, false); // true!

您所指的LeftTextView是指。在IdifferenceViewer界面中,似乎只存在LeftText。@LanceLi MSFT我更新了帖子,使其更加清晰——属性名称是
LeftView
Hi brianc,我正试图让一位更具经验的人参与进来,帮助研究它。请耐心等待答复。
static IDifferenceViewer GetDiffViewer(IVsWindowFrame frame) {
            ThreadHelper.ThrowIfNotOnUIThread();
            return ErrorHandler.Succeeded(frame.GetProperty((int)__VSFPROPID.VSFPROPID_DocView, out object docView))
                ? (docView as IVsDifferenceCodeWindow)?.DifferenceViewer : null;
}