与(ado.net实体数据模型)的列表视图,单击btn时我想更新列表视图

时间:2018-07-10 14:15:09

标签: wpf xaml ado.net

wpf c#端MainWindow调用yenikaytekle窗口获取性能,我使用ado.net数据模型填充xaml文件中的列表视图。

    public MainWindow()
    {
        InitializeComponent();
        FillMarkaListView();
    }

    /// <summary>
    /// fill the list view
    /// </summary>
    public void FillMarkaListView()
    {
        //get list of all marka
        List<MARKA> listOfMarka = dbContext.MARKA.ToList();
        lvMarka.ItemsSource = listOfMarka;
    }



    /// <summary>
    /// add new item to marak table,with open new window to give marka name
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btnYeniMarkaEkle_Click(object sender, RoutedEventArgs e)
    {
        //here open new window to take the details of model
        YeniMarkaEkle saveWindow = new YeniMarkaEkle();
        saveWindow.ShowDialog();
    }
}

另一个获取模型详细信息的窗口,在这里我称该窗口获取模型的属性并将数据保存在数据库中

 public partial class YeniMarkaEkle : Window
{
    private BaburTechEntities dbContext = new BaburTechEntities();
    public YeniMarkaEkle()
    {
        InitializeComponent();
    }

    private void Window_ContentRendered(object sender, EventArgs e)
    {
        txtMarka.SelectAll();
        txtMarka.Focus();
    }

    /// <summary>
    /// add new marka to the table
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btnDialogOk_Click(object sender, RoutedEventArgs e)
    {
        MARKA mARKA = new MARKA();
        mARKA.ADI = txtMarka.Text.ToUpper();

        dbContext.MARKA.Add(mARKA);
        dbContext.SaveChanges();

        this.Close();

    }
}

这是我的主窗口xaml代码

 <!-- List of marka-->
                        <StackPanel Grid.Row="1" Margin="10">
                            <Grid>
                                <ListView Margin="10" x:Name="lvMarka" >
                                    <ListView.ItemContainerStyle>
                                        <Style TargetType="{x:Type ListViewItem}">
                                            <Setter Property="BorderBrush" Value="LightGray" />
                                            <Setter Property="BorderThickness" Value="0,0,0,1" />
                                        </Style>
                                    </ListView.ItemContainerStyle>
                                    <ListView.View>
                                        <GridView>
                                            <GridViewColumn Header="Kategori ID" Width="200" DisplayMemberBinding="{Binding ID}" />
                                            <GridViewColumn Header="Kategori" Width="200" DisplayMemberBinding="{Binding ADI}" />
                                        </GridView>
                                    </ListView.View>
                                </ListView>
                            </Grid>

                        </StackPanel>

1 个答案:

答案 0 :(得分:0)

如果要获取更新的列表,请在调用dbContext.MARKA.ToList()之后再调用saveWindow.ShowDialog();并将其设置为listView itemssource,但是您应该阅读有关MVVM的信息,因为此处的操作没有遵循良好做法。

编辑:

private List<MARKA> listOfMarka

    public MainWindow()
{
    listOfMarka= new List<MARKA>();
    InitializeComponent();
    FillMarkaListView();
}
private List<MARKA> listOfMarka
/// <summary>
/// fill the list view
/// </summary>
public void FillMarkaListView()
{
    //get list of all marka
    listOfMarka = dbContext.MARKA.ToList();
    lvMarka.ItemsSource = listOfMarka;
}

/// <summary>
/// add new item to marak table,with open new window to give marka name
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnYeniMarkaEkle_Click(object sender, RoutedEventArgs e)
{
    //here open new window to take the details of model
    YeniMarkaEkle saveWindow = new YeniMarkaEkle(listOfMarka);
    saveWindow.ShowDialog();
    lvMarka.ItemsSource = listOfMarka;
}


public partial class YeniMarkaEkle : Window
{
private BaburTechEntities dbContext = new BaburTechEntities();
private List<MARKA> listOfMarka;

public YeniMarkaEkle(List<MARKA> listOfMarka)
{
    listOfMarka = listOfMarka;
    InitializeComponent();
}

private void Window_ContentRendered(object sender, EventArgs e)
{
    txtMarka.SelectAll();
    txtMarka.Focus();
}

/// <summary>
/// add new marka to the table
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnDialogOk_Click(object sender, RoutedEventArgs e)
{
    MARKA mARKA = new MARKA();
    mARKA.ADI = txtMarka.Text.ToUpper();
    listOfMarka.Add(mARKA);
    dbContext.MARKA.Add(mARKA);
    dbContext.SaveChanges();

    this.Close();

}
相关问题