wpf - ComboBox和 Entity Framework ,如何获取ID? (WPF-MVVM)

标签 wpf mvvm binding combobox entity

如何在ViewModel.AddNewMovie()中获取所选语言的ID?
这是我的第一次尝试。不好,因为它是索引,而不是ID。

View :

...
<ComboBox ItemsSource="{Binding LanguagesCollection}" 
SelectedIndex="{Binding NewMovieLanguage}"
DisplayMemberPath="L_Name" SelectedValuePath="L_Id"/>
...

ViewModel:
...

public ObservableCollection<Languages> LanguagesCollection { get; private set; }
public ObservableCollection<Movies> MoviesCollection{ get; private set; }

...

_Entities = new MyAppEntities();
LanguagesCollection = new ObservableCollection<Languages>(_Entities.Languages);
MoviesCollection = new ObservableCollection<Movies>(_Entities.Movies.Include("Languages"));

...

private void AddNewMovie()
{
        OnPropertyChanged("NewMovieTitle");
        OnPropertyChanged("NewMovieLanguage");
    try
    {
        Movies NewMovie = new Movies 
        {
            M_Title = NewMovieTitle,
            M_Language_Id = Convert.ToInt32(NewMovieLanguage)+1,
        };

        _Entities.AddToMovies(NewMovie);
        MoviesCollection.Add(NewMovie);
        ...
    }
    catch
    {
        ...
    }
}

实体数据模型:

电影(表格)

M_Id Int32

M_标题字符串

M_Language_Id Int32 fk

语言(表)

L_Id Int32

L_Name字符串

-数据-

语言

1英文

2德语

3法语

4西类牙语

最佳答案

哦,解决方法是:

<ComboBox ItemsSource="{Binding LanguagesCollection}" 
SelectedValue="{Binding NewMovieLanguage}"
DisplayMemberPath="L_Name" SelectedValuePath="L_Id"/>

关于wpf - ComboBox和 Entity Framework ,如何获取ID? (WPF-MVVM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14091333/

相关文章:

c# - WPF - MVVM - 谁负责新的 DataProvider 连接?

c# - 如何在 WPF LiveCharts 中添加图表标题

wpf - 如何使用绑定(bind)更新 UI

c# - 当我在 WPF Mvvm 中按下按钮时,如何在 DataGrid 中显示数据?

wpf - 如何在用户控件 View 模型中处理来自主窗口的命令

c# 将 datagridview 绑定(bind)到表单 vs 控件中的数据表

c# - 如何允许用户在组合框中键入

c# - 有什么方法可以阻止 WPF Popup 在离开屏幕时重新定位自身?

c# - MVVM 绑定(bind)、对象属性通知已更改

c# - Xamarin:绑定(bind) ios 协议(protocol)/委托(delegate)无法访问 structs.cs 中定义的枚举