i try to use generate MVVM pattern using Silverlight ListView. But if i bind data my silverlight control no data visualize. also no error return. i see empty gridview.
Model:
MyData.cs
public class MyData
{
public int ID { get; set; }
public string Name { get; set; }
public string Price { get; set; }
public string Author { get; set; }
public string Catalog { get; set; }
}
View:
BookViewer.xaml
<UserControl x:Class="wpf.MVVM.Project.View.BookViewer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="500" Width="700">
<Grid>
<StackPanel>
<ListView Margin="8" Height="400" Width="650" ItemsSource="{Binding Path=MyData}">
<ListView.View>
<GridView >
<GridViewColumn Header="ID" Width="Auto">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding ID}" TextAlignment="Right" Width="40"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=Name}" Header="Name" Width="100"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=Price}" Header="Price" Width="100"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=Author}" Header="Author" Width="100"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=Catalog}" Header="Catalog" Width="100"/>
</GridView>
</ListView.View>
</ListView>
</StackPanel>
</Grid>
</UserControl>
ViewModel:
MyDataViewModel.cs
public class MyDataViewModel
{
// public ObservableCollection<MyData> myData { get; set; }
public List<MyData> GetData()
{
List<MyData> myDataList = new List<MyData>();
myDataList.Add(new MyData() { ID = 1, Name = "yusuf karatoprak", Author = "Mike Gold", Price = "6.7 TL", Catalog = "IT" });
myDataList.Add(new MyData() { ID = 2, Name = "yusuf karatoprak", Author = "Scott Gunitella", Price = "9.7 TL", Catalog = "IT" });
myDataList.Add(new MyData() { ID = 3, Name = "yusuf karatoprak", Author = "David Hayden", Price = "11.7 TL", Catalog = "IT" });
if (myDataList.Count > 0)
{
return myDataList;
}
else
return null;
}
}
Window1.xaml
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
MyDataViewModel myDataCtx = new MyDataViewModel();
MyDataDataView.DataContext = myDataCtx.GetData();
}
}
<Window x:Class="wpf.MVVM.Project.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="1000" Width="900"
xmlns:views="clr-namespace:wpf.MVVM.Project.View" Loaded="Window_Loaded">
<Grid>
<views:BookViewer x:Name="MyDataDataView" Margin="0,0,0,0"></views:BookViewer>
</Grid>
</Window>
i writed these codes but no data i can see.Look below:
i added 2 pics my debug mode: