【问题标题】:Getting text from textblock defined in style从样式中定义的文本块获取文本
【发布时间】:2011-06-08 10:54:01
【问题描述】:

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

【问题讨论】:

    标签: c# silverlight coding-style


    【解决方案1】:

    我认为你不能用纯 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>
    

    【讨论】:

    • 我认为这对我没有帮助,因为我有许多不同的样式适用于同一个对象,我需要知道哪些列对于给定的实际可见风格。如果我按照描述绑定文本,我仍然不知道哪些是可见的。也许我在这里遗漏了一些东西。
    • 如果我理解正确的话,在这种情况下,可见性和文本是完全独立的问题,所以也许你的问题不是文本,而是如何创建和维护列的状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多