2016-06-29 3 views
0

목록을 작성하고 urls 파일로 채 웠습니다. 해당 데이터 템플리트의 목록에있는 텍스트 블록에서 해당 URL을 가져오고 싶지만 그 목적으로 만든 함수가 예상 한 문자열을 반환하지 않습니다. . 대신 null을 제공합니다. 다음과 같은 경우에는 내가 사용하는 기능은 ListView에목록보기의 데이터 템플릿에있는 텍스트 블록에서 데이터를 가져 오는 방법은 무엇입니까?

<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 : Bind'란 무엇입니까? – 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

관련 문제