Подтвердить что ты не робот

Элемент привязки ICollectionView Wpf не может разрешать свойство объекта типа

Я связал a GridView с ICollectionView в дизайне XAML, свойства неизвестны, поскольку объект в CollectionView был преобразован в тип Object, и свойства объекта не могут быть доступны, он отлично работает без ошибок, но дизайнер показывает это как ошибку, если я привяжусь к коллекции, я могу получить доступ к свойствам fine

Пример: объект Person с свойством string Name помещает их в ObservableCollection<Person> и получаю представление от него и привязываю его к GridView.ItemsSource теперь, когда я пытаюсь установить заголовок столбца DataMemberBinding.FirstName конструктор показывает это как ошибку

Невозможно разрешить свойство "FirstName" в данных Контекст объекта типа

Является ли это ошибкой или это решайер играет трюки на мне

Пример кода:

public class Person 
{
    public string FirstName{
       get { return _firstName; }
       set { SetPropertyValue("FirstName", ref _firstName, value); }
    }
}
public class DataService 
{
    public IDataSource DataContext { get; set; }
    public ICollectionView PersonCollection{ get; set; }

    public DataService()
    {
        DataContext = new DataSource();
        //QueryableCollectionView is from Telerik 
        //but if i use any other CollectionView same thing
        //DataContext Persons is an ObservableCollection<Person> Persons
        PersonCollection = new QueryableCollectionView(DataContext.Persons);
    }
}

<telerik:RadGridView x:Name="ParentGrid" 
    ItemsSource="{Binding DataService.PersonCollection}"
    AutoGenerateColumns="False">
    <telerik:RadGridView.Columns >
        <telerik:GridViewDataColumn Header="{lex:Loc Key=FirstName}"  
            DataMemberBinding="{Binding FirstName}"/>
    </telerik:RadGridView.Columns>
</telerik:RadGridView>

enter image description here

4b9b3361

Ответ 1

Предупреждения, которые Resharper дает вам в представлении XAML, связаны с тем, что представление времени разработки элемента управления не знает, какой тип он имеет в контексте данных. Вы можете использовать d: DesignInstance, чтобы помочь с вашими привязками.

Добавьте следующее (заменяя имена объектов Assembly/Namespace/Binding Target)

<UserControl x:Class="MyNamespace.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup‐compatibility/2006"
mc:Ignorable="d"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:lcl="clr‐namespace:MyAssembly"
d:DataContext="{d:DesignInstance Type=lcl:ViewModel}">