/
anna_grinchenko
/
ReactiveUISample
Обзор
Документация
Войти
/
anna_grinchenko
/
ReactiveUISample
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Views/MainWindow.axaml
101 строка
5 KB
GrinchenkoAnna
Можно отредактировать группу по ключу. Контакты получают полный префикс, группа - первую букву префикса
06 июл 2026, 15:26
06 июл 2026, 15:26
5ffebbb
Код
Авторство
О чём код?
<Window xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="using:ReactiveUISample.ViewModels" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="using:ReactiveUISample.Templates" xmlns:controls="clr-namespace:ReactiveUISample.Controls" xmlns:attached_properties="clr-namespace:ReactiveUISample.AttachedProperties" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="ReactiveUISample.Views.MainWindow" x:DataType="vm:MainWindowViewModel" Icon="/Assets/avalonia-logo.ico" Title="ReactiveUISample"> <Window.Resources> <DataTemplate x:Key="ContactCardTemplate" x:DataType="vm:ContactViewModel"> <controls:ContactCard Name="{Binding Name}" Email="{Binding Email}" IsSelected="{Binding IsSelected}" attached_properties:ContactCardProperties.IsNew="{Binding IsNew}" attached_properties:ContactCardProperties.IsOnline="{Binding IsOnline}" HorizontalAlignment="Stretch" /> </DataTemplate> </Window.Resources> <DockPanel> <Menu DockPanel.Dock="Top"> <MenuItem Header="Файл"> <MenuItem Header="Добавить" Command="{Binding AddContactCommand}"/> <MenuItem Header="Удалить" Command="{Binding DeleteContactCommand}" /> <Separator /> <MenuItem Header="Выход" Command="{Binding $parent[Window].Close}" /> </MenuItem> <MenuItem Header="Оформление"> <MenuItem Header="Светлая" Tag="Light" Click="OnThemeClick" /> <MenuItem Header="Темная" Tag="Dark" Click="OnThemeClick" /> <MenuItem Header="Синяя" Tag="Blue" Click="OnThemeClick" /> <Separator /> <MenuItem Header="Макет"> <MenuItem Header="По умолчанию" Tag="Default" Click="OnLayoutClick" /> <MenuItem Header="Компактный" Tag="Compact" Click="OnLayoutClick" /> <Separator /> <MenuItem Header="Список" Tag="List" Click="OnLayoutClick" /> <MenuItem Header="Плитка" Tag="Tiles" Click="OnLayoutClick" /> </MenuItem> </MenuItem> </Menu> <TextBox x:Name="SearchTextBox" DockPanel.Dock="Top" Watermark="Search" Text="{Binding SearchText, Mode=TwoWay}" Margin="5"/> <!--<StackPanel Orientation="Vertical" Margin="5"> <Button Content="WhenAll" Command="{Binding LoadWithWhenAllCommand}" Margin="2" /> <Button Content="WhenAny" Command="{Binding LoadWithWhenAnyCommand}" Margin="2" /> <Button Content="Parallel.ForEach" Command="{Binding LoadWithParallelForEachCommand}" Margin="2" /> <TextBlock Text="{Binding StatusMessage}" VerticalAlignment="Center" Margin="1,0,0,0" Width="100" TextWrapping="Wrap"/> </StackPanel>--> <Grid x:Name="RootGrid" DragDrop.AllowDrop="True"> <!--List--> <ScrollViewer> <ItemsControl x:Name="ListViewBox" ItemsSource="{Binding GroupedContacts}" IsVisible="True" HorizontalAlignment="Stretch"> <ItemsControl.ItemTemplate> <DataTemplate x:DataType="vm:ContactGroupViewModel"> <DockPanel Margin="5"> <Border x:Name="GroupLetterBorder" DockPanel.Dock="Top" Padding="7" Margin="0,0,15,0" BorderThickness="0.5" CornerRadius="3"> <controls:EditableTextBlock Text="{Binding EditedKey}" /> </Border> <ListBox ItemsSource="{Binding Items}" ItemTemplate="{StaticResource ContactCardTemplate}" HorizontalAlignment="Stretch" SelectedItem="{Binding Owner.SelectedContact, Mode=TwoWay}" DoubleTapped="OnListDoubleTapped"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <VirtualizingStackPanel /> </ItemsPanelTemplate> </ListBox.ItemsPanel> </ListBox> </DockPanel> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> </ScrollViewer> <!--Tiles--> <ListBox x:Name="TilesViewBox" ItemsSource="{Binding Contacts}" SelectedItem="{Binding SelectedContact, Mode=TwoWay}" ItemTemplate="{StaticResource ContactCardTemplate}" IsVisible="False" DoubleTapped="OnListDoubleTapped"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <WrapPanel Orientation="Horizontal" /> </ItemsPanelTemplate> </ListBox.ItemsPanel> </ListBox> </Grid> </DockPanel> </Window>