我正在爲windows phone 8.1/windows 8.1開發通用應用程序。我正在使用MVVM模式。我有動態數量的視圖模型中綁定到源的堆疊面板的表。一個堆疊面板是表中的一行。我怎樣才能使堆棧面板中的項目寬度相同?我知道IsSharedSizeScope
,但這在通用應用程序的網格中不可用。通用應用程序中的動態表格
<ItemsControl Grid.Column="1" HorizontalAlignment="Stretch"
ItemsSource="{Binding PowerMaxiTableSource0, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Border Background="{Binding IsEnabled, Converter={StaticResource BackgroundConverter}}">
<TextBlock Text="{Binding Text0}" />
</Border>
<Border Background="{Binding IsEnabled, Converter={StaticResource BackgroundConverter}}">
<TextBlock Text="{Binding Text1}" />
</Border>
<Border Background="{Binding IsEnabled, Converter={StaticResource BackgroundConverter}}">
<TextBlock Text="{Binding Text2}" />
</Border>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
因爲這是表我嘗試使用網格而不是stackpanels,但我無法使它工作。我試過這個解決方案wpf grid with dynamic columns。但是我最終得到了聚集在第0行第0列的項目,即使在綁定屬性中使用了正確的值。
任何幫助將不勝感激(甚至與網格解決方案)。
是否有可能給所有的TextBlocks一個固定的寬度和使用TextTrimming屬性? – goobering
那麼沒有固定的寬度會更好,因爲我需要覆蓋許多不同的屏幕尺寸,但我沒有看到任何其他方式。 – benderto