Intellisense ошибается или я? - PullRequest
0 голосов
/ 18 июня 2020

У меня есть ошибка Intellisense, о которой я должен сообщить, но я хочу быть уверенным.

Я пишу мульти-привязку с конвертером для свойства IsHitTestVisible сетки. Когда непрозрачность моей сетки уменьшается до нуля, я устанавливаю IsHitTestVisible на false. (Затухание происходит в другом месте анимации).

Вот соответствующий XAML

<Grid x:Name="DetailGrid" >

    <Grid.IsHitTestVisible>
        <MultiBinding Converter="{net:CompareConverter}" ConverterParameter="{x:Static net:CompareOp.Greater}">
            <Binding RelativeSource="{RelativeSource Self}" 
                     Path="Opacity" />    <!-- INTELLISENSE DOESNT LIKE THIS -->
            <Binding Source="{net:DoubleVal 0.0}" />
        </MultiBinding>
    </Grid.IsHitTestVisible>
</Grid>

Intellisense сообщает мне, что «Непрозрачность» не является свойством MultiBinding. И это правда. Но RelativeSource Self должен относиться к сетке, а не к MultiBinding, верно?

Я не ищу обходного пути. Пытаюсь понять, ошибается ли Intellisense. Потому что кажется; Привязка вроде работает. Я просто хочу быть уверенным. (Кроме того, у меня уже есть обходной путь: если я переключусь с RelativeSource Self на ElementName="DetailGrid", ошибки Intellisense не будет)

Я прав, что Intellisense ошибся?

[EDIT]. Так как в моем примере используется конвертер и вещи, которых нет у других. Вот гораздо более простой пример, демонстрирующий проблему. пытался привязать его ширину к его высоте с помощью мульти-привязки. Бессмысленно, да, но законно, и приложение работает

<Grid Height="100" Background="Blue">
    <Grid.Resources>
        <local:ReturnFirstConverter x:Key="Cvt"/>
    </Grid.Resources>
    <Grid.Width>
        <MultiBinding Converter="{StaticResource Cvt}" >
            <Binding RelativeSource="{RelativeSource Self}" Path="Height"/>
        </MultiBinding>
    </Grid.Width>
</Grid>

В этом случае Intellisense будет жаловаться, что «свойство« Высота »не найдено в« MultiBinding ». Это проблема

1 Ответ

0 голосов
/ 22 июня 2020

Если я переключусь с RelativeSource Self на ElementName = "DetailGrid", ошибки Intellisense не будет). Правильно ли я, что Intellisense ошибся?

С У меня не было вашего полного образца для тестирования. Я предлагаю вам попробовать следующие шаги для устранения проблемы, чтобы проверить, является ли это проблемой VS или самого вашего проекта:

1) отключите любые сторонние расширения в Extensions меню, чтобы проверить, вызывает ли расширение такое поведение.

2) удалить .vs скрытую папку в папке решения, bin и obj папку, а затем перезапустите проект для повторного тестирования.

3) попробуйте создать новый пустой проект wpf (отключите любые сторонние расширения), если вы не столкнулись с такой же проблемой в новом проекте, это относящиеся к вашему конкретному проекту c. И выполните два вышеуказанных шага. Или просто перенос вашего старого проекта в новый может быть хорошим выбором.

Если вы столкнетесь с той же проблемой в новом проекте, то это должна быть проблема VS.

Перед этим вы должны выполнить ремонт в VS Installer или обновить VS до последней версии, если некоторые исправления уже выпущены.

======== ==============================================

Если вы попробуете все шаги и все равно получите ту же ошибку, дайте нам знать, и мы поможем вам сообщить об этой проблеме, чтобы предоставить вам лучшую поддержку.

Обновление 1

Довольно странное поведение intellisense, и я уже сообщаю об этой проблеме на нашем форуме D C . Вы можете проверить ссылку и проголосовать за нее или добавить комментарий, если я не описал проблему подробно.

Любой, кто заинтересован в этом, включая нас, проголосует за него, чтобы получить больше Microsoft внимание.

...