public class Movie { public Movie(string Name, byte Type, int Cost, int? Dues, int DuesTV, int DuesExtra, short? CinemaPart, short? DistrPart) { this.Name = Name; this.Type = Type; this.Cost = Cost; this.Dues = Dues; this.DuesTV = DuesTV; this.DuesExtra = DuesExtra; this.CinemaPart = CinemaPart; this.DistrPart = DistrPart; } public string Name { get; set; } public byte Type { get; set; } public int Cost { get; set; } public int? Dues { get; set; } public int DuesTV { get; set; } public int DuesExtra { get; set; } public short? CinemaPart { get; set; } public short? DistrPart { get; set; } } <Window x:Class="Earnings.Movies" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Earnings" mc:Ignorable="d" Title=" " Height="150" Width="249" Style="{StaticResource WindowStyle}" ResizeMode="NoResize" WindowStartupLocation="CenterScreen"> <Grid> <ComboBox x:Name="movieList" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="212" SelectionChanged="movieList_SelectionChanged"/> <Label x:Name="_Type" Content=":" HorizontalAlignment="Left" Margin="10,41,0,0" VerticalAlignment="Top" Style="{StaticResource LabelStyle}"/> <Label x:Name="Type" HorizontalAlignment="Left" Margin="83,41,0,0" VerticalAlignment="Top" Style="{StaticResource LabelStyle}"/> <Button x:Name="calc" Content=" " HorizontalAlignment="Left" Margin="10,75,0,0" VerticalAlignment="Top" Width="212" Style="{StaticResource ButtonStyle}" Click="calc_Click"/> </Grid> </Window> public partial class Movies : Window { public Movies() { InitializeComponent(); List<Movie> movies = new List<Movie>() { new Movie(" ", 0, 100000000, 200000000, 40000000, 10000000, 55, 10), new Movie("", 0, 160000000, 300000000, 60000000, 20000000, 50, 11), new Movie("", 1, 6000000, null, 22000000, 2000000, null, null), new Movie(" ", 1, 11000000, null, 4000000, 600000, null, null) }; movieList.ItemsSource = movies; movieList.DisplayMemberPath = "Name"; } private void calc_Click(object sender, RoutedEventArgs e) { if (movieList.SelectedIndex != -1) { Movie movie = ((Movie)movieList.SelectedItem); switch (movie.Type) { case 0: Film film = new Film(movie); film.ShowDialog(); break; default: Serial serial = new Serial(movie); serial.ShowDialog(); break; } } else { MessageBox.Show(" "); } } private void movieList_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { if (((Movie)movieList.SelectedItem).Type == 0) Type.Content = ""; else Type.Content = ""; } } 
public class MovieEdit : Window { protected Movie movie; protected void calculate(double cost, double cash, string type) { double result = (cash - cost) / 1000000; if (result > 0) { MessageBox.Show(" " + type + " \"" + Title + "\":\n" + result + " ."); } else { MessageBox.Show(" " + type + " \"" + Title + "\":\n" + -result + " ."); } } protected void save(int Cost, int? Dues, int DuesTV, int DuesExtra, short? CinemaPart, short? DistrPart) { MessageBoxResult view = MessageBox.Show(" ?", "", MessageBoxButton.YesNo, MessageBoxImage.Question); if (view == MessageBoxResult.Yes) { movie.Cost = Cost; if (Dues != null) movie.Dues = (int)Dues; if (CinemaPart != null) movie.CinemaPart = (short)CinemaPart; if (DistrPart != null) movie.DistrPart = (short)DistrPart; movie.DuesTV = DuesTV; movie.DuesExtra = DuesExtra; Close(); } } protected void cancel() { MessageBoxResult view = MessageBox.Show(" ?", "", MessageBoxButton.YesNo, MessageBoxImage.Question); if (view == MessageBoxResult.Yes) { Close(); } } } <local:MovieEdit x:Class="Earnings.Film" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Earnings" mc:Ignorable="d" Height="250" Width="310" Style="{StaticResource WindowStyle}" ResizeMode="NoResize" WindowStartupLocation="CenterScreen"> <Grid> <Label x:Name="_cost" Content=":" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Style="{StaticResource LabelStyle}"/> <TextBox x:Name="cost" HorizontalAlignment="Left" Height="23" Margin="132,12,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="150"/> <Label x:Name="_dues" Content=" :" HorizontalAlignment="Left" Margin="10,36,0,0" VerticalAlignment="Top" Style="{StaticResource LabelStyle}"/> <TextBox x:Name="dues" HorizontalAlignment="Left" Height="23" Margin="132,38,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="150"/> <Label x:Name="_cinemaPart" Content=" :" HorizontalAlignment="Left" Margin="10,62,0,0" VerticalAlignment="Top" Style="{StaticResource LabelStyle}"/> <TextBox x:Name="cinemaPart" HorizontalAlignment="Left" Height="23" Margin="232,64,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="50"/> <Label x:Name="_distrPart" Content=" :" HorizontalAlignment="Left" Margin="10,88,0,0" VerticalAlignment="Top" Style="{StaticResource LabelStyle}"/> <TextBox x:Name="distrPart" HorizontalAlignment="Left" Height="23" Margin="232,90,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="50"/> <Label x:Name="_duesTV" Content=" :" HorizontalAlignment="Left" Margin="10,114,0,0" VerticalAlignment="Top" Style="{StaticResource LabelStyle}"/> <TextBox x:Name="duesTV" HorizontalAlignment="Left" Height="23" Margin="132,116,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="150"/> <Label x:Name="_duesExtra" Content=" :" HorizontalAlignment="Left" Margin="10,140,0,0" VerticalAlignment="Top" Style="{StaticResource LabelStyle}"/> <TextBox x:Name="duesExtra" HorizontalAlignment="Left" Height="23" Margin="132,142,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="150"/> <Button x:Name="_calc" Content="" HorizontalAlignment="Left" Margin="10,175,0,0" VerticalAlignment="Top" Width="86" Style="{StaticResource ButtonStyle}" Height="25" Click="_calc_Click"/> <Button x:Name="_save" Content="" HorizontalAlignment="Left" Margin="103,175,0,0" VerticalAlignment="Top" Width="86" Style="{StaticResource ButtonStyle}" Height="25" Click="_save_Click"/> <Button x:Name="_cancel" Content="" HorizontalAlignment="Left" Margin="196,175,0,0" VerticalAlignment="Top" Width="86" Style="{StaticResource ButtonStyle}" Height="25" Click="_cancel_Click"/> </Grid> </local:MovieEdit> public partial class Film : MovieEdit { public Film(Movie movie) { InitializeComponent(); this.movie = movie; base.Title = movie.Name; cost.Text = movie.Cost.ToString(); dues.Text = movie.Dues.ToString(); cinemaPart.Text = movie.CinemaPart.ToString(); distrPart.Text = movie.DistrPart.ToString(); duesTV.Text = movie.DuesTV.ToString(); duesExtra.Text = movie.DuesExtra.ToString(); } private void _calc_Click(object sender, RoutedEventArgs e) { base.calculate(double.Parse(cost.Text), double.Parse(dues.Text) * (100 - double.Parse(cinemaPart.Text) - double.Parse(distrPart.Text)) / 100 + double.Parse(duesTV.Text) + double.Parse(duesExtra.Text), ""); } private void _save_Click(object sender, RoutedEventArgs e) { base.save(int.Parse(cost.Text), int.Parse(dues.Text), int.Parse(duesTV.Text), int.Parse(duesExtra.Text), short.Parse(cinemaPart.Text), short.Parse(distrPart.Text)); } private void _cancel_Click(object sender, RoutedEventArgs e) { base.cancel(); } } <local:MovieEdit x:Class="Earnings.Film" ... xmlns:local="clr-namespace:Earnings" ...> <Grid> ... </Grid> </local:MovieEdit> 
<local:MovieEdit x:Class="Earnings.Serial" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Earnings" mc:Ignorable="d" Height="172" Width="310" Style="{StaticResource WindowStyle}" ResizeMode="NoResize" WindowStartupLocation="CenterScreen"> <Grid> <Label x:Name="_cost" Content=":" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Style="{StaticResource LabelStyle}"/> <TextBox x:Name="cost" HorizontalAlignment="Left" Height="23" Margin="132,12,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="150"/> <Label x:Name="_duesTV" Content=" :" HorizontalAlignment="Left" Margin="10,36,0,0" VerticalAlignment="Top" Style="{StaticResource LabelStyle}"/> <TextBox x:Name="duesTV" HorizontalAlignment="Left" Height="23" Margin="132,38,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="150"/> <Label x:Name="_duesExtra" Content=" :" HorizontalAlignment="Left" Margin="10,62,0,0" VerticalAlignment="Top" Style="{StaticResource LabelStyle}"/> <TextBox x:Name="duesExtra" HorizontalAlignment="Left" Height="23" Margin="132,64,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="150"/> <Button x:Name="_calc" Content="" HorizontalAlignment="Left" Margin="10,97,0,0" VerticalAlignment="Top" Width="86" Style="{StaticResource ButtonStyle}" Height="25" Click="_calc_Click"/> <Button x:Name="_save" Content="" HorizontalAlignment="Left" Margin="103,97,0,0" VerticalAlignment="Top" Width="86" Style="{StaticResource ButtonStyle}" Height="25" Click="_save_Click"/> <Button x:Name="_cancel" Content="" HorizontalAlignment="Left" Margin="196,97,0,0" VerticalAlignment="Top" Width="86" Style="{StaticResource ButtonStyle}" Height="25" Click="_cancel_Click"/> </Grid> </local:MovieEdit> public partial class Serial : MovieEdit { public Serial(Movie movie) { InitializeComponent(); base.Title = movie.Name; cost.Text = movie.Cost.ToString(); duesTV.Text = movie.DuesTV.ToString(); duesExtra.Text = movie.DuesExtra.ToString(); } private void _calc_Click(object sender, RoutedEventArgs e) { base.calculate(double.Parse(cost.Text), double.Parse(duesTV.Text) + double.Parse(duesExtra.Text), ""); } private void _save_Click(object sender, RoutedEventArgs e) { base.save(int.Parse(cost.Text), null, int.Parse(duesTV.Text), int.Parse(duesExtra.Text), null, null); } private void _cancel_Click(object sender, RoutedEventArgs e) { base.cancel(); } } 


Source: https://habr.com/ru/post/307308/
All Articles