学习笔记:
1. DataGrid 笔记1中已经记录;
2. ItemsControl
属性:
ItemsSource:数据源
ItemsControl.ItemTemplate:单项数据模板,内部使用<DataTemplate>
示例:
<ItemsControl Grid.Row="4" ItemsSource="{Binding ItemModels}" ><ItemsControl.ItemTemplate><DataTemplate><Grid><Grid.RowDefinitions ><RowDefinition/><RowDefinition/><RowDefinition/></Grid.RowDefinitions><TextBlock Text="{Binding LastName}"></TextBlock><TextBlock Text="{Binding FirstName}"></TextBlock></Grid></DataTemplate></ItemsControl.ItemTemplate>
</ItemsControl>
public List<Person> ItemModels { get; set; } = new List<Person>();public MainWindowViewModel(){ItemModels.Add(new Person("eew", "dsjuoj"));ItemModels.Add(new Person("Ne22323ids", "dsjuoj"));ItemModels.Add(new Person("rrrr", "dsjuoj"));}
水平方向可以根据父元素尺寸自动调整,但垂直方向不可以。
3. ItemsRepeater 具有数据模板和布局模板
需要引用nuget包
<PackageReference Include="Avalonia.Controls.ItemsRepeater" Version="11.0.9" />
属性:
ItemsSource
ItemsRepeater.ItemTemplate
ItemsRepeater.Layout:设置布局的方向,默认垂直
// 该标签内必须设置StackLayout
<ItemsRepeater.Layout><StackLayout Spacing="40" Orientation="Horizontal" />
</ItemsRepeater.Layout>
该标签内必须设置StackLayout。
<ItemsRepeater Grid.Row="5" Grid.RowSpan="3" ItemsSource="{Binding ItemModels}"><ItemsRepeater.Layout><StackLayout Orientation="Horizontal"></StackLayout></ItemsRepeater.Layout><ItemsRepeater.ItemTemplate><DataTemplate><Border Margin="0,10,0,0" CornerRadius="5" BorderBrush="Blue" BorderThickness="1" Padding="5"><StackPanel Orientation="Horizontal"><TextBlock Text="{Binding FirstName}"></TextBlock><TextBlock Margin="5 0" Text="{Binding LastName}"></TextBlock></StackPanel></Border></DataTemplate></ItemsRepeater.ItemTemplate>
</ItemsRepeater>
4. ListBox
属性:
Items:数据项集合。只有get属性
SelectedIndex:下标
SelectedItem:单选
SelectedItems: 多选
Selection:一个ISelectionModel对象,具有各种方法来跟踪多个选定项目
SelectionMode:选择模式,值为:Single(单选模式)、Multiple(多选模式)、Toggle(所选项目可以切换,若不启用,则需要用“shift/ctrl”切换)、AlwaysSelected(始终被选择)
ScrollViewer.Horizontal:水平滚动条的可见性,值:Disabled(默认)、Auto、Hidden、Visible。
ScrollViewer.Vertical:垂直滚动条的可见性,值:Disabled(默认)、Auto、Hidden、Visible。
示例:
<ListBox Grid.Row="5" x:Name="animals">
animals.ItemsSource = new string[] { "cat", "dog", "bird", "tiger", "duck", "chicken" }.OrderBy(x=>x);
5. ComboBox 下拉框
属性:
Items:数据项集合,只读
SelectedIndex
SelectedItem
SelectedItems
AutoScrollToSelectedItem:是否自动滚动到所选择的项
IsDropDownOpen:是否打开下拉
MaxDropDownHeight:下拉最大高度,
这是列表部分的实际高度,而不是显示的项目数。
示例:
<ComboBox Grid.Row="5" SelectedIndex="0" MaxDropDownHeight="100" x:Name="ComboBox1" ItemsSource="{Binding ComboxArr}"/>
<Button Grid.Row="6" Content="添加列表" Command="{Binding AddCom}" CommandParameter="123"></Button>
public List<string> ComboBoxList = new List<string>();
public ObservableCollection<string> ComboxArr { get; set; }public MainWindowViewModel()
{ComboBoxList.Add("item1");ComboBoxList.Add("item2");ComboBoxList.Add("item3");ComboBoxList.Add("item4");ComboBoxList.Add("item5");ComboxArr = new ObservableCollection<string>(ComboBoxList.ToArray());
}public void AddCom(string args)
{ComboBoxList.Add(args);ComboxArr = new ObservableCollection<string>(ComboBoxList.ToArray());this.RaisePropertyChanged(nameof(ComboxArr));
}