2012-04-05 18 views
0

私はWindows 7の電話機では新しいですが、1つの問題で3日間を費やしています。私はすべてのインターネットを検索し、良い説明を得るが、運がない - それは私のプログラムではうまくいかない。 (nullのデータ型はnvarchar(30)、)WCFを使用してWindows Phone 7にSQL Azureを接続

  • ID
  • カテゴリ(、nullでないPK)
  • :私は構造でdbo.Messengerと呼ばれるSQL Azureの一つのテーブルに作成

    メッセージ(nullのデータ型はnvarchar(200)、()はnullデータ型はnvarchar(MAX)、)

  • 説明

が、私はWCそれのために作りますFはwchich私にそれのリストを持参してください:讲义1コースの

 [OperationContract] 
     List<NoteDto> GetNotes(); 
public List<NoteDto> GetNotes() 
    { 
     using (var context = new WP7mgrEntities()) 
     { 
      var notes = (from eachNote in context.Messenger 
         orderby eachNote.id ascending 
         select new NoteDto 
      { 
       id = eachNote.id, 
       category= eachNote.category, 
       description= eachNote.description, 
       message= eachNote.message, 
      } 
       ).ToList(); 
      return notes; 
     } 
    } 

余分なクラスNoteDtoに、このような各データメンバーのために得た:

[DataMember] 
    public int id {get; set; } 

ので、この後、私はWP7を作りますリストボックスを取得するアプリケーションも、ボタンをクリックすると表示されます。button2

 <ListBox Height="431" HorizontalAlignment="Left" Margin="12,199,0,0" Name="listBox1" VerticalAlignment="Top" Width="438" 
       ItemsSource="{Binding Notes}"> 
     <ListBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel> 
         <TextBlock Text="{Binding category}"/> 
        </StackPanel> 
       </DataTemplate> 
      </ListBox.ItemTemplate>   
     </ListBox> 

そして、これの背後に、このコード:

private void button2_Click(object sender, RoutedEventArgs e) 
    { 
     Service1Client client = new Service1Client(); 
     client.GetNotesCompleted += new EventHandler<GetNotesCompletedEventArgs>(client_GetNotesCompleted); 
     this.Notes = new ObservableCollection<NoteDto>(); 

    } 
    private ObservableCollection<NoteDto> _notes; 
    public ObservableCollection<NoteDto> Notes 
    { 
     get { return _notes; } 
     set { _notes = value; 
     this.RaisePropertyChanged("Notes"); 
     } 
    } 

公開イベントPropertyChangedEventHandlerのPropertyChanged; プライベートvoid RaisePropertyChanged(string propertyName) { PropertyChangedEventHandler propertyChanged = this.PropertyChanged; if((propertyChanged!= null)) { propertyChanged(this、新しいPropertyChangedEventArgs(propertyName));私は、データベースからレコードで埋めるされていないボタン2私のリストボックスをクリックし }}

void client_GetNotesCompleted(object sender, GetNotesCompletedEventArgs e) 
    {this.Notes = e.Result; } 


Plzは助けますか?

+0

、それが参考に願っています。私はちょうどthis.Notesを静的な値に設定するためにbutton2_Clickを変更します。 – Rich

+0

これを設定するには? – HelpMyProgram

+0

私はbutton2_Clickのようなものを言っています:this.Notes = new List {new NoteDto {id = 1、category = "Foo"}};デバッグ101.どの部分が故障しているかを示します。それでは理由を見つけてください。 – Rich

答えて

0

どのようなバインディングを使用していますか? WP7ではwshttpbindingしか利用できないことを思い出してください。一方、WCF Data ServiceでこのようなデータベースをODataとして公開してはどうでしょうか。

Check it out.

は、あなたが本当にあなたのコードはノートを取得するために失敗しているかどうかの画面が変化に対応するために失敗しているかどうかわからない

+0

私はデフォルトのバインディングを使用しますが、web.configではcreate project(asp.net 4.0を使用)以降何も変更しませんでした。WCFは、それを使用してテキストボックスを埋めるために1つのレコードを取得しようとしましたが、それはリストでのみこの問題を解決しました。私はoDataを試すことができますが、私はビジュアルスタジオ2010、私はprefferで動作していない作業が必要です参照してください:) – HelpMyProgram

+0

私はデフォルトのバインディングはどちらもサポートされていないMEXだと思う。 = <サービスbehaviorConfiguration = "ServiceBehavior" 名前= "サービス"> <エンドポイントアドレス= "" バインディング= "basicHttpBinding" 名= "BasicHttpEndpoint" bindingConfiguration:追加することにより、WCF WCFエディタを使用してbasichttpbindingまたはちょうどを追加しよう"" contract = "IService">

関連する問題