从样式中定义的文本块获取文本

时间:2011-06-08 10:54:01

标签: c# silverlight coding-style

我的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>

1 个答案:

答案 0 :(得分:0)

我认为你不能用纯XAML做到这一点,你必须复制模板或创建一个自定义控件,通过模板将文本值公开为依赖属性。

我认为最好的解决方案是为Grid标头设置绑定并使用ViewModel填充它们:

<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>