2013-11-27 8 views
9

ich ein GridView mit einem ICollectionView im XAML-Designern gebunden habe die Eigenschaften sind nicht bekannt, da das Unternehmen in den CollectionView hat in Art Object und die Elementeigenschaften können nicht umgewandelt worden zugegriffen, es läuft kein Fehler in Ordnung, aber der Designer zeigt es als Fehler, wenn ich an die Sammlung binde ich die EigenschaftenWpf ICollectionView Binding Element kann nicht Eigenschaft vom Typ Objekt löst

fein das Unternehmen

Beispiel ist ein Person mit einem string Name Eigenschaft zugreifen kann ich sie in einem ObservableCollection<Person> platzieren und erhalten die Sicht von und binden Sie es an die GridView.ItemsSource jetzt, wenn ich versuche, die Spaltenüberschrift DataMemberBinding.FirstName Eigenschaft des Designers zeigt es als Fehler

Eigenschaft ‚Vorname‘ in Datenkontext des Typs

Objekt auflösen

Ist es ein Fehler oder es ReSharper spielen Tricks auf mich ist

Beispielcode kann nicht:

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

Antwort

5

Die Warnung gs, die Resharper Ihnen in der XAML-Ansicht gibt, liegt daran, dass die Entwurfszeitansicht des Steuerelements nicht weiß, um welchen Datentypen es sich handelt. Sie können ein d: DesignInstance verwenden, um mit Ihren Bindungen zu helfen.

Fügen Sie den folgenden (als Ersatz für Montage/Namespace/Verbindliche Zielnamen entsprechend)

<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}">