ObservableCollection与db&组合框的绑定如何更新其他字段

时间:2014-03-23 17:16:27

标签: wpf mvvm binding combobox observablecollection

(问题1 :)我正在尝试从我的本地数据库连接一个带有2列的组合框。问题是我想用ObservableCollection做这个,因为我想把每一行作为一个对象&我使用WPF与MVVM模式ofc。所以我有3个包含3个类的文件夹,但我只使用ViewModel和View(直到现在不是我的Model类)。

在我的ViewModel中我有这个:

ObservableCollection<PropertyFields> combo = new ObservableCollection<PropertyFields>();
public ViewModelEmp()
{
    this.combo = new ObservableCollection<PropertyFields>();
    comboconnect();
}

public void comboconnect()
{
   ... @ Connection columns & rows @ This is working i haved checked that out.
        {
            for (int i = 0; i < row.ItemArray.Count(); i++)
            {
              combo.Add(new PropertyFields { EMPLOYEE_ID = row.ItemArray[0].ToString(), LAST_NAME = row.ItemArray[1].ToString()});
            }
        }
    }
}

我的PropertyField Class上有我的绑定所有属性,我不得不说我在ViewModel文件夹上也有一个Helper类,ViewModelBase有我的PropertyChangedEventHandler。

class PropertyFields : ViewModelBase
{
    private object _EMPLOYEE_ID;
    private object _LAST_NAME;

    public object EMPLOYEE_ID
    {
        get { return _EMPLOYEE_ID; }
        set { EMPLOYEE_ID = value; OnPropertyChanged("EMPLOYEE_ID"); }
    }

    public object LAST_NAME
    {
        get { return _LAST_NAME; }
        set { _LAST_NAME = value; OnPropertyChanged("LAST_NAME"); }
    }

    public PropertyFields(object employee_id, object last_name)
    {
       this.EMPLOYEE_ID = employee_id;
       this.LAST_NAME = last_name;
    }

    public PropertyFields()
    {

    }
}

&安培;这是我的用户界面的ComboBox绑定(一个用户控件..)

<ComboBox VerticalAlignment="Center" Grid.Column="1"  Grid.Row="0" IsEditable="True" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Path=combo}" ItemTemplate="{StaticResource res}"/>

这是我的组合框的绑定:

<DataTemplate x:Key="res">
    <StackPanel>
        <TextBlock Text="{Binding EMPLOYEE_ID}" />
        <TextBlock Text="{Binding LAST_NAME}" />
    </StackPanel>
</DataTemplate>

我在这里遇到未处理的异常是我的错误图片:

http://s15.postimg.org/72wzzo9or/reallysucks.jpg

现在,每当我试图找到解决方案或者我遇到错误或者它无法正常工作时。

(问题2:)另外我还有一个问题,我希望在与其他文本框或我的GUI列表连接之后,我想我可以使用来自我的组合框的绑定来使用SelectedItems但我和# 39;我不太确定如何。先谢谢你们。


修改

我已经从我的PropertyFields编辑了我的属性:

public object LAST_NAME { get; set; }
public object EMPLOYEE_ID { get; set; }
public PropertyFields(object employee_id, object last_name)
{
   this.EMPLOYEE_ID = employee_id;
    this.LAST_NAME = last_name;
}

现在我的程序正在运行,但我的组合框中没有任何东西是空的:S


EDIT2:

我已经在我的数据库中添加了我的数据库中的数据,现在我如何更改项目中其他字段上的数据,如文本框?所以当我在组合框上选择第一行时,我需要将数据更新到其他文本框吗?

0 个答案:

没有答案