1

基本的にDataGridであるUserControlがあります。データグリッドには、オブジェクトにバインドされた 1 つの TemplateColumn があります。

DataTemplate 内にある Borderbrush を設定するプロパティを UserControl に追加したいと考えています。

ここに私の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 に答える