2012-07-05 36 views
0

我有一個ListView看起來像這樣:地鐵C++/XAML ListView控件啪項目

<ListView x:Name="MyList" ItemsSource="{Binding Path=MyItems}"> 
    <ListView.ItemTemplate> 
    <DataTemplate> 
     <StackPanel> 
     <TextBlock x:Name="Title" Text="{Binding Path=TitleCategory}"/> 
     <TextBlock x:Name="Body" Text="{Binding Path=BodySummary}" Style="{StaticResource BodyTextStyle}"/> 
     </StackPanel> 
    </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

的BodyTextStyle我申請到的TextBlock在600px的設置寬度,一切都在FullScreenLandscape顯示細膩。但是,當我切換到SnappedView時,由於屏幕寬度減小,文本會消失。一般情況下我設置的寬度像這樣:

<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Width)" Storyboard.TargetName="Body"> 
    <DiscreteObjectKeyFrame KeyTime="0" Value="300"/> 
</ObjectAnimationUsingKeyFrames> 

但是,這會產生一個運行時崩潰,我想是因爲我引用項目(S)是一個ItemTemplate。當我進入SnappedView時,更改ListView中每個項目的寬度的正確方法是什麼?

回答

1

從我在樣本和模板中看到的推薦方式似乎是爲不同視圖狀態提供單獨的ListView,並嘗試通過嘗試做類似於您正在做的事情並且必須對抗我決定放棄的很多問題,並做模板。 保存你自己的麻煩,併爲快照視圖使用單獨的ListView,並在視圖狀態改變時簡單地切換兩個ListView的可見性。

此外,我會認爲你是對的,問題來自於名稱範圍問題具有獨立的名稱範圍的模板。

+0

導致去這條路線,不完全是高興的代碼冗餘,但直到我找到一個更好的解決方案,這將需要做= \ – kurifu 2013-02-04 00:41:51