Sry fot the title,如果你有更好的请编辑。
如果我在这样的资源中使用wpf中的对象创建,我有一个工作代码:
<local:PersonView x:Key="Persons"/>
但我想使用在mainwindow中创建的对象,这是工作代码:
<Grid>
<Grid.Resources>
<local:PersonView x:Key="Persons"/>
<CollectionViewSource x:Key="ViewPersons" Source="{Binding Source={StaticResource Persons}, Path=Persons}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="Name"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
</Grid.Resources>
<ListView ItemsSource="{Binding Source={StaticResource ViewPersons}}">
<ListView.View>
<GridView>
<GridViewColumn Width="100" Header="Name" DisplayMemberBinding="{Binding Name}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
我使用的课程:
public class Person
{
public string Name { get; set; }
}
public class PersonView
{
public ObservableCollection<Person> Persons { get; set; }
public PersonView()
{
Persons = new ObservableCollection<Person>();
Persons.Add(new Person() { Name = "Luis" });
Persons.Add(new Person() { Name = "Gusth" });
}
}
此代码有效,但我想将CollectionViewSource绑定到在mainwindow中创建的对象:
public partial class MainWindow : Window
{
public PersonView BindThis { get; set; }
public MainWindow()
{
InitializeComponent();
BindThis = new PersonView();
}
}
我试试这个但是不行:
<CollectionViewSource x:Key="ViewPersons" Source="{Binding RelativeSource={RelativeSource AncestorType=Window}, Path=BindThis}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="Name"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
答案 0 :(得分:1)
Sry伙计们,我花了很长时间试图解决这个问题。但是刚才我开始工作了。这种绑定的东西仍然让我很困惑。希望它对某人有所帮助。
修复:
public class PersonView : ObservableCollection<Person>
{
public PersonView()
{
Add(new Person() { Name = "Luis" });
Add(new Person() { Name = "Gusth" });
}
}