2017-06-01 93 views
0

我想根据列表框中选定的项目加载数据网格。XamDataGrid根据列表框中的选定项目绑定

你能帮我吗我该如何实现。

下面是我的模型

艺术家类

public class Artist. 
{ 
public string Name { get; set; } 
public int Age { get; set; } 
} 

电影类

public class Movie 
{ 
private string _Name = string.Empty; 

public string Name 
{ 
get 
{ 
return _Name; 
} 

set 
{ 
_Name = value; 
} 
} 

private List _Artists = new List(); 

public List Artists 
{ 
get 
{ 
return _Artists; 
} 
set 
{ 
_Artists = value; 
} 
} 
} 

ViewModel类

public class ViewModel 
{ 

private List _Movies; 

public List Movies 
{ 
get 
{ 
return _Movies; 
} 

set 
{ 
_Movies = value; 
} 
} 

public ViewModel() 
{ 

_Movies = new List(); 

Movie movie = new Movie(); 
movie.Name = "Movie 1"; 

List artists = new List(); 

Artist artist1 = new Artist(); 
artist1.Name = "Artist 1"; 
artist1.Age = 27; 

artists.Add(artist1); 

movie.Artists = artists; 

_Movies.Add(movie); 

//2nd record 

movie = new Movie(); 
movie.Name = "Movie 2"; 

artists = new List(); 

artist1 = new Artist(); 
artist1.Name = "Artist 2"; 
artist1.Age = 27; 

artists.Add(artist1); 

movie.Artists = artists; 

_Movies.Add(movie); 

} 
} 

下面是XAML中 - 视图模型对象绑定到窗口DataContext的

<Grid> 

<Grid.ColumnDefinitions> 
<ColumnDefinition Width="Auto"/> 
<ColumnDefinition Width="Auto"/> 
</Grid.ColumnDefinitions> 

<ListBox Name="MoviesList" Grid.Column="0" Width="150" ItemsSource="{Binding Movies}"> 
<ListBox.ItemTemplate> 
<DataTemplate> 
<TextBlock Text="{Binding Name}"/> 
</DataTemplate> 
</ListBox.ItemTemplate> 
</ListBox> 

<igWPF:XamDataGrid Grid.Column="1" DataSource="{Binding Movies}"> 
<igWPF:XamDataGrid.FieldLayouts> 
<igWPF:FieldLayout> 
<igWPF:Field Name="Name"/> 
</igWPF:FieldLayout> 
</igWPF:XamDataGrid.FieldLayouts> 
</igWPF:XamDataGrid> 
</Grid> 

回答

1

,如果你想在DataGrid显示所选电影的艺术家试试这个:

<igWPF:XamDataGrid Grid.Column="1" DataSource="{Binding SelectedItem.Artists, ElementName=MoviesList}"> 
+0

谢谢你。它正在工作 – superuser