2011-06-08 142 views
0

我的Silverlight 4應用中有一種樣式。我在哪裏定義了網格中的列名,是否可以從這個樣式的對象中獲取這些頭文本?在下面的代碼中,我希望得到的是應用了這種風格的對象中的字符串「foo」和「bar」。從樣式中定義的文本塊中獲取文本

</Grid> 
    <Grid 
    x:Name="m_Headers" 
    Visibility="Visible" 
    Grid.Row="1"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition 
      Width="{StaticResource DataColunmWidth}" /> 
      <ColumnDefinition 
      Width="{StaticResource DataColunmWidth}" /> 
     </Grid.ColumnDefinitions> 
     <TextBlock 
     Margin="3,0,0,0" 
     Text="foo" 
     Grid.Column="1" /> 
     <TextBlock 
     Margin="3,0,0,0" 
     Text="bar" 
     Grid.Column="2" /> 
    </Grid> 

回答

0

我不認爲你可以用純XAML做到這一點,你必須複製的模板或創建暴露文本值經由模板依賴屬性的自定義控制。

最好的解決辦法,我認爲是設置綁定你的網頭,並使用您的視圖模型填充它們:

<Grid 
x:Name="m_Headers" 
Visibility="Visible" 
Grid.Row="1"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition 
     Width="{StaticResource DataColunmWidth}" /> 
     <ColumnDefinition 
     Width="{StaticResource DataColunmWidth}" /> 
    </Grid.ColumnDefinitions> 
    <TextBlock 
    Margin="3,0,0,0" 
    Text="{Binding FooText}" 
    Grid.Column="1" /> 
    <TextBlock 
    Margin="3,0,0,0" 
    Text="{Binding BarText}" 
    Grid.Column="2" /> 
</Grid> 
+0

我不認爲這會幫助我,因爲我有許多不同的風格,適用於同一個對象,我需要知道的是哪些列對於給定樣式實際可見。如果我按照描述來綁定文本,我仍然不知道哪些是可見的。也許我在這裏錯過了一些東西。 – Keller 2011-06-16 08:22:11

+0

如果我理解你是正確的,那麼可見性和文本在這種情況下是完全不同的問題,所以也許你的問題不是文本,而是如何創建和維護你的列的狀態。 – dain 2011-06-16 21:51:47