не установленный компонент в модели - PullRequest
0 голосов
/ 03 ноября 2018

Мне нужно вставить данные из usercontrol в базу данных.

Я попытался установить компонент xml в мою модель, но это привело к System.NullReferenceException.

Где проблема? Как я могу решить это?

usercontrol.cs:

 public partial class League : UserControl
{
    private Leagues _leagueVM;
    public Leagues LeagueVM
    {
        get
        {
            _leagueVM.EnLeagueName = txtLeagueNameEN.Text;
            _leagueVM.FaLeagueName = txtLeagueNameFA.Text;
            _leagueVM.LeagueLogo = imgLogoLeague.Name;
            return _leagueVM;
        }
        set
        {
            txtLeagueNameEN.Text = _leagueVM.EnLeagueName;
            txtLeagueNameFA.Text = _leagueVM.FaLeagueName;
            imgLogoLeague.Name = _leagueVM.LeagueLogo;
        }
    }
    public League()
    {
        var leagueManager = Inject.Container.GetInstance<ILeagueService>();

        InitializeComponent();
    }

    private void Image_MouseDown(object sender, MouseButtonEventArgs e)
    {
        FileDialog dialog = new OpenFileDialog();

        dialog.ShowDialog();
    }

    private void btnInsertLeague_Click(object sender, RoutedEventArgs e)
    {
        var leagueManager = Inject.Container.GetInstance<ILeagueService>();
        leagueManager.Add(LeagueVM);
    }
}

XML:

<UserControl x:Class="Bet.UControl.UControls.League"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:Bet.UControl.UControls"
         mc:Ignorable="d" 
         d:DesignHeight="450" d:DesignWidth="800" Width="1255" Height="624">
<Grid Margin="10,0,10,10">
    <GroupBox  Header="New League" Background="#fff" HorizontalAlignment="Center"  Height="151" Margin="10,10,0,0" VerticalAlignment="Top" Width="1215">
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
            <Label  Content="LeagueName (En) : " Foreground="Black" Width="111"  FontFamily="Rockwell" Height="28"/>
            <TextBox x:Name="txtLeagueNameEN" Width="199"  Height="30" Margin="10,20,30,40" />
            <Label  Content="LeagueName (En) : " Foreground="Black" Width="111"  FontFamily="Rockwell" Height="28"/>
            <TextBox x:Name="txtLeagueNameFA" Width="199"  Height="30" Margin="10,20,30,40" />
            <Label  Content="League Logo " Foreground="Black" Width="111"  FontFamily="Rockwell" Height="28"/>
            <Image x:Name="imgLogoLeague" Width="90" Height="85" Margin="5,0,0,0" Source="E:\MyProject\Bet\Bet\Assetes\adfg.png" MouseDown="Image_MouseDown"/>
            <Button x:Name="btnInsertLeague" Content="Add" Height="Auto" Width="75" Margin="100,27,30,43" Click="btnInsertLeague_Click"/>

        </StackPanel>
    </GroupBox>
    <DataGrid HorizontalAlignment="Left" Height="420" Margin="15,184,0,0" VerticalAlignment="Top" Width="1210"/>

</Grid>

1 Ответ

0 голосов
/ 03 ноября 2018

Кажется, вы пропустили создание объекта League и присвоили его _leagueVM. Должно быть легко увидеть, используете ли вы отладчик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...