Как связать данные списка со списком - PullRequest
0 голосов
/ 03 апреля 2012

Я использую службу WCF, которая содержит этот метод:

public List<LocationDB> GetLocation()
{
    List<LocationDB> locations = null;
    using (SqlConnection connection = new SqlConnection(conn))
    {
        using (SqlCommand command = new SqlCommand())
        {
            command.Connection = connection;
            command.CommandText = string.Format("Select L_ID ,L_Name from Location");
            connection.Open();
//code to fill the locations list..

Моя проблема заключается в том, что когда я хочу связать результат этого метода в своем коде, я делаю следующее.

 void MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
            client.GetLocationCompleted += new EventHandler<GetLocationCompletedEventArgs>(client_GetLocationCompleted);
            client.GetLocationAsync();
        }
    }

и:

void client_GetLocationCompleted(object sender, GetLocationCompletedEventArgs e)
    {
        LocationCombo.ItemsSource = e.Result;
        LocationCombo.SelectedValuePath = 
        LocationCombo.DisplayMemberPath =
    }

и, наконец, мой класс LocationDB, который находится в папке App_code на веб-сайте asp:

     [DataContract]
public class LocationDB
{
    [DataMember]
    public int Lid { get; set; }
[DataMember]
public int SmId { get; set; }

[DataMember]
public string Lname { get; set; }

как я могу связать SelectedValePath и DisplayMemberPath вКод не в XAML.Спасибо

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Вы должны иметь возможность установить для каждого из них строку, которая представляет свойство (для объекта, к которому вы привязываете), чтобы использовать его как SelectedValuePath и DisplayMemberPath соответственно:

LocationCombo.SelectedValuePath = "Lid";
LocationCombo.DisplayMemberPath ="Lname";
LocationCombo.ItemsSource = e.Result.ToList();
1 голос
/ 03 апреля 2012

Из того, что я могу сказать, у вас уже есть все, что вам нужно, хотя некоторые из них должны быть в другом порядке.

void client_GetLocationCompleted(object sender, GetLocationCompletedEventArgs e)
{
    LocationCombo.SelectedValuePath = "Lid";
    LocationCombo.DisplayMemberPath = "Lname";
    LocationCombo.ItemsSource = e.Result;
}
...