Таким образом, я хотел бы сделать видимую таблицу с границей вокруг каждой ячейки и различного цвета фона для заголовка. Я хотел бы в конечном счете вставить средства управления в это. Например, поместите текстовое поле в одном из элементов таблицы или некоторые переключатели, и т.д. Существует ли управление для этого?
Я сузил его к двум возможностям, но они оба кажутся видом "meh":
используйте Управление Сеткой - мне нравится это, но есть ли способ окрасить границу на ячейке (я не нашел это),
используйте Управление DataGrid - это управление является просто слишком сложным для того, в чем я нуждаюсь.
Я просто ищу таблицу стиля HTML в Silverlight, каких-либо идеях?
Я получил довольно приличные результаты с помощью HeaderedItemsControl в Toolkit:
<c:HeaderedItemsControl ItemsSource="{Binding rowData}" x:Name="theTable">
<c:HeaderedItemsControl.Header>
<Border Background="HEADER BG COLOR HERE">
<Grid Width="{Binding ActualWidth, ElementName=theTable}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Field 1"/>
<TextBlock Grid.Column="1" Text="Field 2"/>
<TextBlock Grid.Column="2" Text="Field 3"/>
</Grid>
</Border>
</c:HeaderedItemsControl.Header>
<c:HeaderedItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Value1}"/>
<TextBlock Grid.Column="1" Text="{Binding Value2}"/>
<TextBlock Grid.Column="2" Text="{Binding Value3}"/>
</Grid>
</DataTemplate>
</c:HeaderedItemsControl.ItemTemplate>
</c:HeaderedItemsControl>
И, конечно, вы можете стилизовать приведенное выше, как вам нравится ...
Вы можете использовать сетку с элементом Border в каждой ячейке (с BorderThickness и BorderBrush \ Background) Посмотрите на этот пример (с UniformGrid):
<UniformGrid Margin="10" Name="uniformGrid1">
<Border BorderThickness="1" BorderBrush="Red">
<TextBlock Text="1"></TextBlock>
</Border>
<Border BorderThickness="1" BorderBrush="Blue">
<TextBlock Text="2"></TextBlock>
</Border>
<Border BorderThickness="1" BorderBrush="Black">
<TextBlock Text="3"></TextBlock>
</Border>
<Border BorderThickness="1" BorderBrush="Yellow">
<TextBlock Text="4"></TextBlock>
</Border>
</UniformGrid>