ram*_*n22 12 c# wpf xaml icollectionview
我已经绑定了GridView
一个ICollectionView
在XAML设计器中的属性未知,因为CollectionView
已经转换为类型Object
的实体并且无法访问实体属性,它运行良好没有错误但设计者将其显示为错误,如果我绑定到我可以访问属性的集合
示例实体是一个Person
具有string Name
属性的我将它们放在一个ObservableCollection<Person>
并从中获取视图并将其绑定到GridView.ItemsSource
现在当我尝试设置列标题DataMemberBinding.FirstName
属性时,设计器将其显示为错误
无法在类型对象的数据上下文中解析属性'FirstName'
这是一个错误还是Resharper在我身上耍花招
示例代码:
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>
Run Code Online (Sandbox Code Playgroud)
Resharper在XAML视图中提供的警告是因为控件的设计时视图不知道它的数据上下文是什么类型.您可以使用ad: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}">
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3774 次 |
最近记录: |