DataGrid 数据模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<DataGrid SelectedItem="{Binding SelectHexoPost}" AutoGenerateColumns="False" VerticalContentAlignment="Center" IsReadOnly="True" CanUserSortColumns="True" CanUserAddRows="False" ItemsSource="{Binding HexoPosts}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Id}" Width="0.3*" Header="ID"/>
<DataGridTextColumn Binding="{Binding Title}" Width="1*" Header="标题"/>
<DataGridTextColumn Binding="{Binding Date}" Width="1*" Header="创建时间"/>
<DataGridTextColumn Binding="{Binding FileName}" Width="2*" Header="文件名"/>
<DataGridTemplateColumn Header="操作" Width="1*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left">
<Button Margin="8,0" Command="{Binding DataContext.CommandEdit, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" Content="编 辑" Background="#00BFFF" Foreground="White" Width="45" Height="24" FontSize="13" FontWeight="Bold" Cursor="Hand" pu:ButtonHelper.CornerRadius="3"/>
<Button Margin="8,0" Command="{Binding DataContext.CommandRemove, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" Content="删 除" Background="Red" Foreground="White" Width="45" Height="24" FontSize="13" FontWeight="Bold" Cursor="Hand" pu:ButtonHelper.CornerRadius="3"/>
<Button Margin="8,0" Command="{Binding DataContext.CommandSystemEdit, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" Content="系统编辑" Background="#3CB371" Foreground="White" Width="65" Height="24" FontSize="13" FontWeight="Bold" Cursor="Hand" pu:ButtonHelper.CornerRadius="3"/>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>

DataGridTextColumn 绑定 Visibility

1
2
3
4
5
6
7
8
9
10
11
12
<Grid>
<FrameworkElement x:Name="dummyElement" Visibility="Collapsed" />
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn
Header="Test"
Visibility="{Binding DataContext.IsVisibility,
Source={x:Reference dummyElement}}" />
</DataGrid.Columns>
<DataGridTextColumn Header="123" />
</DataGrid>
</Grid>

ListBox 数据模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<ListBox
Grid.Row="2"
Grid.Column="1"
Margin="3,5"
HorizontalContentAlignment="Stretch"
ItemsSource="{Binding Companies}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="30" />
<ColumnDefinition Width="30" />
</Grid.ColumnDefinitions>
<TextBox Margin="3" Text="{Binding CompanyName}" />
<Button
Grid.Column="1"
Width="20"
Height="20"
Margin="3"
Background="White"
BorderThickness="0"
Command="{Binding DataContext.CommandRemoveCompany, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListBox}}"
CommandParameter="{Binding .}"
Cursor="Hand">
<Image Source="/ProConfiguration_3dDataBase;component/Images/Del32.png" />
</Button>
<Button
Grid.Column="2"
Width="20"
Height="20"
Margin="3"
Background="White"
BorderThickness="0"
Command="{Binding DataContext.CommandAddCompany, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListBox}}"
Cursor="Hand"
Visibility="{Binding NewButtonVisibility}">
<Image Source="/ProConfiguration_3dDataBase;component/Images/add_row.png" />
</Button>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

数据模板中的控件绑定命令

1
<Button Command="{Binding DataContext.CommandAddCompany, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListBox}}"></Button>

数据模板中的控件传参

1
2
<!-- 绑定时命令参数写{Binding .}即传递的是当前自己的模型数据 -->
<Button CommandParameter="{Binding .}" />