나는 MVVM을 처음 사용하고 ObservableCollection을 Listview에 바인딩하려고합니다.
ViewModel
namespace Multiwindow.Viewmodel
{
public class ViewModelBase
{
public Commandclass Cclass { get; set; }
private ObservableCollection<Person> observableprsn = new ObservableCollection<Person>();
public ViewModelBase()
{
Cclass = new Commandclass(this);
}
public void oncommand()
{
for (int i = 0; i < 5; i++)
{
Person p = new Person();
p.Name = "name";
p.Lastname = "lastname" + i;
observableprsn.Add(p);
}
}
}
}
전망
<Window.Resources>
<m:Person x:Key="personmodel"/>
<vm:ViewModelBase x:Key="vmodel"/>
</Window.Resources>
<Grid Background="Gray" DataContext="{StaticResource vmodel}">
<Button Content="Load Window 2" Margin="155,108,177,157"
Command="{Binding Cclass, Source={StaticResource vmodel}}" />
<ListView HorizontalAlignment="Left" Height="100" Width="184"
DataContext="{Binding Source={StaticResource vmodel}}"
ItemsSource="{Binding }">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Header="Address" DisplayMemberBinding="{Binding Lastname}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
버튼을 클릭하면 속성 이름과 성이있는 클래스 사람의 루프에서 일부 데이터를 목록보기에 바인딩하고 있습니다. 감사
private ObservableCollection<Person> observableprsn = new ObservableCollection<Person>();
사유 재산 대신
Public
컬렉션 이 필요합니다.
public ObservableCollection<Person> Persons
{
get { return _observableprsn; }
set
{
if (_observableprsn != value)
{
_observableprsn = value;
}
}
}
private ObservableCollection<Person> _observableprsn { get; set; }
Xaml (이것은 나를 위해 작동합니다)
<ListView HorizontalAlignment="Left" Height="100" Width="184"
ItemsSource="{Binding Persons}">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Header="Address" DisplayMemberBinding="{Binding lastName}"/>
</GridView>
</ListView.View>
</ListView>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다