0
在我的應用程序(Windows 8.1)中,我使用拆分的Visual Studio模板。它正在工作,如果我選擇一個項目,我可以顯示文本內容。動態切換控件類型以顯示不同的內容類型
內容與文字,圖像,pdfs混合。
那麼如何根據內容數據動態地切換控件類型(例如TextBlock,Image,UserControl)呢?
如果我得到的文本應該顯示在一個TextBlock,但如果我得到一個圖像(鏈接)它應該顯示在圖像控制。 (也許切換控制類型的方式是錯誤的,我不知道!?)
我可以在XAML中解決這個問題,還是應該在代碼後面執行?
我不知道我該怎麼做。任何人都可以給我一個提示嗎?
<Grid x:Name="itemDetailGrid" Margin="0,60,0,50">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image Source="{Binding ImagePath}" Grid.Row="1" Margin="0,0,20,0" Width="180" Height="180" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
<StackPanel x:Name="itemDetailTitlePanel" Grid.Row="1" Grid.Column="1">
<TextBlock x:Name="itemTitle" Margin="0,-10,0,0" Text="{Binding Title}" Style="{StaticResource SubheaderTextBlockStyle}"/>
<TextBlock x:Name="itemSubtitle" Margin="0,0,0,20" Text="{Binding Subtitle}" Style="{StaticResource SubtitleTextBlockStyle}"/>
</StackPanel>
<!-- <TextBlock Grid.Row="2" Grid.ColumnSpan="2" Margin="0,20,0,0" Text="{Binding Content}" Style="{StaticResource BodyTextBlockStyle}"/> -->
<Image Source="{Binding Content}" Grid.ColumnSpan="2" Grid.Row="2" Margin="0,20,0,0" Stretch="UniformToFill" />
嗯......我認爲OP使用的是WinRT,WinRT中沒有'{x:Type}'。 –
啊......我想知道什麼是'分裂的Visual Studio模板'。 – Sheridan
哦,謝謝,是的,我正在使用WinRT。也許這也可以通過'DataTemplateSelector'實現。但我的內容類型始終是字符串。如果我得到一張圖片或PDF,我只能得到鏈接。那麼我怎麼才能區分'DataTemplate'用於在我的應用中顯示它? – GermanSniper