Предметная область - Аниме
MainWindow.xaml
<Grid ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition />
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!-- типа логотип компании -->
<Image
Source="\Img\qw.png"
Grid.RowSpan="2"/>
<StackPanel
Orientation="Vertical"
Grid.RowSpan="3"
VerticalAlignment="Bottom">
<Button
x:Name="ExitButton"
Content="Выход"
Click="ExitButton_Click"
Height="50"/>
</StackPanel>
<ListBox
Grid.Row="1"
Grid.Column="1"
ItemsSource="{Binding animeList}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
>
<ListBox.ItemTemplate>
<DataTemplate>
<Border
BorderThickness="1"
BorderBrush="Black"
CornerRadius="5"
>
<WrapPanel
Orientation="Horizontal"
Grid.Column="1"
Margin="50">
<TextBlock Text="{Binding name, StringFormat='Название: {0} '}"/>
<TextBlock Text="{Binding chasti, StringFormat='Количество частей: {0}' }"/>
<TextBlock Text="{Binding raiting, StringFormat='Рейтинг: {0} '}"/>
<TextBlock Text="{Binding zhanr.title, StringFormat='Жанр: {0} '}"/>
<TextBlock Text="{Binding data, StringFormat='Дата выпуска: dd.MM.yyyy '}"/>
<TextBlock Text="Корокометражное: "/>
<CheckBox IsChecked="{Binding korotkometrazhnoe}"/>
</WrapPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
MainWindow.xaml.cs
namespace anime;
public partial class MainWindow : Window
{
public IEnumerable<Anime> animeList { get; set; }
public MainWindow()
{
InitializeComponent();
DataContext = this;
Globals.dataProvider = new LocalDataProvider();
animeList = Globals.dataProvider.getAnimes();
}
private void ExitButton_Click(
object sender,
RoutedEventArgs e)
{
Application.Current.Shutdown();
}
}
Globals
namespace anime.Classes
{
class Globals
{
public static IDataProvider dataProvider;
}
}
IDataProvider
namespace anime.Classes
{
interface IDataProvider
{
IEnumerable<Anime> getAnimes();
}
}
LocalDataProvider
namespace anime.Classes
{
public class LocalDataProvider : IDataProvider
{
public IEnumerable<Anime> getAnimes()
{
return new Anime[]{
new Anime{
name="Форма голоса",
chasti=1,
raiting=9.7,
korotkometrazhnoe=true,
data= new DateTime(2019, 05, 23),
zhanr = new AnimeZhanr() { title = "Драма" },},
new Anime{
name="Банановая рыба",
chasti=24,
raiting=7.9,
korotkometrazhnoe=false,
data= new DateTime(2015, 12, 07),
zhanr = new AnimeZhanr() { title = "Сёдзе" },},
};
}
}
}
Anime
namespace anime.Model
{
public class Anime
{
public string name { get; set; }
public int chasti { get; set; }
public double raiting { get; set; }
public bool korotkometrazhnoe { get; set; }
public DateTime data { get; set; }
public AnimeZhanr zhanr { get; set; }
}
}
AnimeZhanr
namespace anime.Model
{
public class AnimeZhanr
{
public string title { get; set; }
}
}
