2010-11-13 3 views
0

Я разрабатываю приложение Windows phone7, у меня есть веб-служба .NET, которая возвращает список. Этот список должен быть привязан к ListBox.Методы реализации в WS-stub-классах

Продукт - это класс, определенный на сервере, а Visual Studio получает свое определение из WSDL и создает заглушку в приложении для Windows-телефона.

Что происходит, так это то, что список вызывает метод toString() для отображения элементов в графическом интерфейсе, поэтому у меня есть странная строка в моем списке. Я хотел бы перейти на удобную строку (Name - Quantity). Для этого я хочу переопределить метод toString(), но изменение его в определении сервера не помогает, потому что методы не отображаются в WSDL. Смена заглушки сама по себе приведет к потере данных при обновлении или изменении ссылки.

Я думаю, что это очень часто случается, поэтому должно быть решение, которое мне не хватает. Поэтому, пожалуйста, как я могу определить метод ToString() в Windows Phone7 для этого объекта, чтобы я мог привязать его к списку?

Спасибо, Оскар

ответ

1

Правильный подход заключается в исходных данных, идущие из WS и перевести его на репрезентативную модель, при строгом соблюдении принципов MVVM и отделяя себя от проблем на стороне сервера. Создание прокси по существу между вами и WS.

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

<ListBox ItemsSource="{Binding}" 
     DisplayMemberPath="Title"> 

Ваша модель могла бы быть что-то вроде ...

public String Title 
{ 
    get 
    { 
     return Name + Quantity; 
    } 
} 
+0

Привет! это свойство здорово, я не знал об этом. О преобразовании необработанных данных в представительную модель, я думаю, что VS уже делает это для меня (если бы я понял, что вы хотите сказать). Как только я получу результаты назад, они имеют значимую модель для моего приложения :) Спасибо за помощь! – JSBach

1

Являются окурки генерироваться как частичные классы, которые не отменяют ToString себя? Если это так, легко - добавьте свой собственный частичный класс. Например:

// Autogenerated stub provides the rest of the code 
public partial class Order 
{ 
    public override string ToString() 
    { 
     return string.Format("{0} - {1}", Name, Quantity); 
    } 
} 
+0

Эта идея была очень умна и просто! благодаря! – JSBach

Смежные вопросы