1

我有一个 UserControl,它基本上是一个 DataGrid。数据网格有一个绑定到对象的 TemplateColumn。

我想向 UserControl 添加一个属性,该属性将设置 DataTemplate 内的 Borderbrush。

这是我的 Xaml:

 <DataGrid.Columns>
                <DataGridTemplateColumn Header="No" IsReadOnly="True">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Border x:Name="ElementBorder" BorderThickness="1">
                                <Viewbox Height="Auto" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
                                    <TextBlock Text="{Binding Name}" VerticalAlignment="Top"></TextBlock>
                                </Viewbox>
                            </Border>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>

我想根据我的 UserControl 中的“ElementBorderColor”属性设置 ElementBorder 的 BorderBrush 属性。

4

1 回答 1

1

另一种解决方案...将您的 BorderBrush 指向您控件中的资源,并在代码中更改该资源。像这样的东西:

<SolidColorBrush x:Key="scb01"
                 Color="Red" />

<DataTemplate x:Key="dt01">
  <Border x:Name="ElementBorder"
          BorderThickness="1"
          BorderBrush="{DynamicResource scb01}">
    <Viewbox Height="Auto"
             VerticalAlignment="Stretch"
             HorizontalAlignment="Stretch">
      <TextBlock Text="{Binding}"
                 VerticalAlignment="Top"></TextBlock>
    </Viewbox>
  </Border>
</DataTemplate>

在代码中:

(Resources["scb01"] as SolidColorBrush).Color = Colors.Green;
于 2012-07-08T17:53:38.627 回答