2016-04-15 11 views
0

私はこれらのテキストボックスにWebサービスからの情報を保持しています。私は情報を収集するクラスを持っており、それを見たいときはうまくいきます。私はTextブロックから集めたい情報をdescとバインディングしていますが、ユーザーがボタンをクリックしない限りテキストボックスが存在しないため、テキストボックスに情報を収集することはできません。そうする方法はありますか?テキストブロックから値を取得する

私が持っているHERESにコード

<ListView x:Name ="View" > 
    <ListView.ItemTemplate > 
     <DataTemplate> 
      <Grid> 
       <StackPanel> 
        <TextBlock Text="{Binding title}"></TextBlock> 
        <TextBlock Text="{Binding location}"></TextBlock> 
        <TextBlock Text="{Binding date}"></TextBlock> 
        <TextBlock 
         x:Name="desc_text" 
         Text="{Binding desc}"></TextBlock> 
        <Button 
         x:Name ="website" 
         HorizontalAlignment="Right" 
         FontFamily="Segoe MDL2 Assets" 
         Content="&#xE109;" 
         Click="website_Click"></Button> 
       </StackPanel> 
      </Grid> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

StackPanelのは、時々(私が欲しいものである)異なる情報と、それぞれの場合に、それはあるかもしれません

+1

「テキストブロックから情報を収集している理由」がわかりません。ある種のモデルやビューモデルクラスのインスタンスにテキストプロパティをバインドしているように見えます。なぜそのインスタンスに行かないのですか?シンプルで簡単な作業を非常に苦痛と困難にするためには、あなたは非常に遠く離れています。 UIに情報を格納せず、モデルに格納します。 UIに表示するだけです。 –

+0

@EdPlunkettあなたのコメントに答えると、私はC#とデータバインディングが初めてで、私はそれを試しています。正直言って私はちょうど考えなかったし、おそらく私はそれがどのように機能するのか分からない。私の主な目的は、「ウェブサイト」という名前のボタンをクリックしたときにdesc内のリンクを取得してリンクにリダイレクトすることができる場合です。私が思ったことから、Visual Studioはそれを見つけられなかったので、インスタンスから取得することはできません。なぜなら、ユーザーがボタンを押したときにのみ表示されるのでなければ、技術的に存在しないからです。 –

+0

これらのコントロールはどこから来ていますか? Webサービスから戻ってきたものを正確に表示できますか?私たちはこのMVVMスタイルを練習することができます。あなたは自分自身を苦しませることなくXAMLを使用する方法の基本的な基礎を得るでしょう。あなたのために仕事のほとんどを手に入れるのはとても簡単です。 –

答えて

-1

必要だが、それ自体を繰り返しますので、私のWebサービスは、いくつかのニュースを返します。これを行う他の方法ですが、最も簡単な方法です。あなたの動的テキストブロックをコードの中で動的にバインドする必要があります。作成した直後にそれを行うことができます。このようなもの:

Binding b = new Binding("color1"); // color1 is the property you are binding to 
       b.Source = bindedobjectthat-has-a-color1property-to-bind-to; 
       b.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; 
       item.SetBinding(Label.BackgroundProperty, b); // Label.BackgroundProperty is the property receiver of this binding 

INotifyPropertyChangedを実装する必要があります。

+0

コードビハインドでバインディングを作成する際にどのような利点があるのか​​説明できますか? –

+0

彼は動的にtextblockを作成していますが、XAMLでデザイン時に存在しないオブジェクトにバインドする方法を見ていません。簡単な方法は、xamlにオブジェクトを作成することですが、可視性を隠してから、そのボタンをクリックした後に表示することができます。こうすることで、XAMLでバインディングを設定できますが、これは彼が望むものではない可能性があります。 –

+0

ダイナミックにテキストブロックを作成することは、彼がやっていることであれば非常に悪い考えです。 DataTemplateが何であるか知っていますか? –

関連する問題