2016-06-29 14 views
0

私はリストを作成し、それにファイルurlを移入しました。そのデータテンプレート内のリストにあるテキストブロックからそのURLを取得したいのですが、その目的のために作った関数が私に期待文字列を返さない。代わりに私にnullを与えています。以下の場合は、私が使用する関数は、リストビューリストビューのデータテンプレートにあるテキストブロックからデータを取得するにはどうすればよいですか?

<ListView ItemsSources="{x:Bind noticeData}" 
      SelectedIndex="{x:Bind MasterListView.SelectedIndex, Mode=OneWay}" 
      x:Name="uriList" SelectionChanged="uriList_SelectionChanged" 
      IsItemClickEnabled="True" Grid.Row="3"> 

      <ListView.ItemTemplate> 
       <DataTemplate x:DataType="data:Datum_2"> 
        <StackPanel> 
         <TextBlock x:Name="downFileUri" Grid.Row="2" Grid.Column="0" 
         VerticalAlignment="Center" HorizontalAlignment="Center" 
         Margin="0,0,0,20" Visibility="Visible" 
         Text="{x:Bind file_url}" TextWrapping="Wrap"/> 
        </StackPanel> 
       </DataTemplate> 
      </ListView.ItemTemplate> 

</ListView> 
+0

イベントハンドラのコードを表示できますか? 'x:バインド'とは何ですか? – JanDotNet

+2

今後はテキストを画像ではなくテキストとして貼り付けてください。ありがとう。 –

+0

@JanDotNet ['x:Bind'はコンパイルされたバインディングです](https://msdn.microsoft.com/en-us/windows/uwp/xaml-platform/x-bind-markup-extension)。 Win10。 –

答えて

1

のプロパティをSelectionChangedたMVVM patternあなたは少なからず、そのようなクリックイベントと選択イベントとしてコントロールのイベントハンドラを使用してスキップします。代わりに、このパターンを使用すると、プロパティにバインドし、プロパティ設定ブロック内でプロパティの変更がいつ取得されるかを確認できます。代わりにあなたのコレクションが保持されているもののタイプのものであろうSelectedItem

SelectedItemにバインドするSelectedIndexへの結合の

。私は仮定し、以下の例では、オブジェクトがあなたのビューモデル

private NoticeData _mySelectedItem; 

public NoticeData MySelectedItem 
{ 
    get{ return _mySelectedItem; } 
    set{ _mySelectedItem = value;} 
} 

ここでは、両方のSelectedItemSelectedItems性質がある見るようListBox上のMSDNドキュメントがあるに続いて

<ListBox SelectedItem="{Binding MySelectedItem, Mode=TwoWay}"> 

NoticeDataと呼ばれています。これらは両方とも結合することができます。もちろん、複数の選択を有効にしている場合はSelectedItemsが使用されます。

あなたがまだ持っていない場合は、ViewModelにINotifyPropertyChangedを実装することが考えられます。ここで

はコメント

あなたにも結合するために使用できる別の方法があるに基づいて、そのためのMSDN documentation同様

編集です。

選択したアイテムに別のエレメントをバインドする場合は、エレメントの名前を付けるだけです。

<ListBox x:Name="MyListBox" ItemsSource="{Binding myItems}"/> 

    <TextBlock Text="{Binding ElementName=MyListBox, Path=SelectedItem.WhatEverProperty}"/> 
+0

SelectedIndexはMasterListViewとuriListViewで行われた選択を反映することができるので、同じ選択インデックスを持つようにします – DesmondANIMUS

+0

@ user3024610 SelectedItemを使用して選択項目の内容をキャプチャします。あなたが望むのであれば両方にバインドすることができます。それは無害だ –

+0

@Anthony_Russelそれは私の心にあったものではないが、私は素晴らしいアイデアをくれたと思う。ありがとう^ _^ SelectedItemをTextBlockにバインドする方法のコードを送信できますか? – DesmondANIMUS

関連する問題