2017-04-04 74 views
0

我已經在兩個窗口中創建了WPF中的應用程序。在一個窗口中,我使用了一個文本框並提交按鈕。一旦從第一個窗口提交,我隱藏第一個窗口並顯示第二個窗口。我使用第一個窗口文本值取得了一些值,並需要在第二個窗口Xaml中進行綁定。實際上,這些值可以使用HTML(mvc)中的foreach綁定,但需要綁定Xaml以在第二個窗口中顯示。請提出一些建議。如何在C#中使用WPF在Xaml中綁定動態值#

+0

['ItemsControl'](HTTP ://www.wpf-tutorial.com/list-controls/itemscontrol/)是綁定到對象列表的標準方式。將ItemsSource設置爲您的對象列表,並創建一個DataTemplate來控制每個項目的可視元素。 –

+0

沒問題,第一個窗口的數據應該已經在某些視圖模型中。在另一個窗口中使用該視圖模型。而已。 – Divisadero

+0

不錯..謝謝@BradleyUffner .. –

回答

0

請找到下面的答案,它肯定會工作

的XAML:對綁定值

<ItemsControl Name="icTodoList"> 
         <ItemsControl.ItemTemplate> 
          <DataTemplate> 
           <Grid Margin="200,50,0,30"> 
            <TextBlock> 
             <Hyperlink TextDecorations="None" NavigateUri="{Binding UriPath}" RequestNavigate="Hyperlink_RequestNavigate" 
                CommandParameter="{Binding ElementName=myImg}"> 
                 <Image HorizontalAlignment="Left" Width="80" Height="80" x:Name="myImg" Source="{Binding Source}" Margin="5"/> 
             </Hyperlink> 
            </TextBlock> 

            <TextBlock TextAlignment="Left" Margin="200,30,0,0"> 
              <TextBlock FontSize="22px" Text="{Binding Title}" Foreground="white"></TextBlock> 
            </TextBlock> 
           </Grid> 
          </DataTemplate> 
         </ItemsControl.ItemTemplate> 
        </ItemsControl> 

C#代碼,

public class DMScreen3 { 
    public List<string> AllFiles { get; set; } 
       List<BindingFilesContent> items = new List<BindingFilesContent>(); 
        if(AllFiles != null) 
        { 
         foreach(var r in AllFiles) 
         { 
          if ((r.ToLower().Contains(".avi") || r.ToLower().Contains(".mp4")) && fileTypes == "video") 
          { 
           items.Add(new BindingFilesContent() { Title = Path.GetFileName(r), UriPath = r, Source = "/images/videoicon.png" }); 
          } 
     icTodoList.ItemsSource = items; 
        } 
     } 
} 
    public class BindingFilesContent 
    { 
     public string Title { get; set; } 
     public string Source { get; set; } 
     public string UriPath { get; set; } 
    } 
+0

Thanks..It works .. –