/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/VisualStudio/Core/Def/CommonControls/MemberSelection.xaml
202 строки
12 KB
Jan
Fix some minor UI errors that were caused by binding failures (#81407)
25 ноя 2025, 03:46
Не верифицирован
25 ноя 2025, 03:46
2d90e73
Код
Авторство
О чём код?
<UserControl x:Class="Microsoft.VisualStudio.LanguageServices.Implementation.CommonControls.MemberSelection" x:ClassModifier="internal" x:Name="MemberSelectionControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:utilities="clr-namespace:Microsoft.VisualStudio.LanguageServices.Implementation.Utilities" xmlns:langServiceUtils="clr-namespace:Microsoft.VisualStudio.LanguageServices.Utilities" xmlns:commoncontrols="clr-namespace:Microsoft.VisualStudio.LanguageServices.Implementation.CommonControls" xmlns:platformimaging="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Imaging" xmlns:vsutil="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Utilities" xmlns:vs="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.15.0" mc:Ignorable="d" xmlns:vsui="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.15.0" xmlns:vsshell="clr-namespace:Microsoft.VisualStudio.Shell;assembly=Microsoft.VisualStudio.Shell.15.0" platformimaging:ImageThemingUtilities.ImageBackgroundColor="{DynamicResource VsColor.ToolWindowBackground}" d:DesignHeight="450" d:DesignWidth="800"> <UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="../VSThemeDictionary.xaml" /> </ResourceDictionary.MergedDictionaries> <Thickness x:Key="ButtonControlsPadding">2, 4, 4, 2</Thickness> <utilities:BooleanReverseConverter x:Key="BooleanReverseConverter"/> <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /> <platformimaging:ThemedImageSourceConverter x:Uid="ThemedImageSourceConverter" x:Key="ThemedImageSourceConverter" /> </ResourceDictionary> </UserControl.Resources> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <DataGrid x:Uid="MemberSelectionGrid" x:Name="MemberSelectionGrid" Grid.Column="0" Margin="0, 5, 12, 2" SelectionMode="Extended" AutoGenerateColumns="False" HeadersVisibility="Column" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" CanUserResizeColumns="False" CanUserResizeRows="False" IsReadOnly="True" CanUserAddRows="False" CanUserDeleteRows="False" CanUserSortColumns="False" GridLinesVisibility="None" ScrollViewer.VerticalScrollBarVisibility="Auto" CanUserReorderColumns="False" Focusable="True" MinWidth="334" Height="Auto" AutomationProperties.Name="{Binding SelectMemberListViewAutomationText}" ItemsSource="{Binding Members, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True, Mode=TwoWay}"> <DataGrid.CellStyle> <Style TargetType="DataGridCell"> <Setter Property="BorderThickness" Value="0"/> <Setter Property="Focusable" Value="False"/> <Setter Property="AutomationProperties.Name" Value="{Binding SymbolName}" /> </Style> </DataGrid.CellStyle> <DataGrid.RowStyle> <Style TargetType="DataGridRow"> <Setter Property="AutomationProperties.Name" Value="{Binding RowSelectionAutomationText}"/> </Style> </DataGrid.RowStyle> <DataGrid.Columns> <DataGridTemplateColumn Width="Auto"> <DataGridTemplateColumn.CellTemplate> <DataTemplate DataType="{x:Type langServiceUtils:MemberSymbolViewModel}"> <Grid Background="{DynamicResource {x:Static vsui:HeaderColors.DefaultBrushKey}}"> <CheckBox AutomationProperties.Name="{Binding SymbolAutomationText}" AutomationProperties.AutomationId="{Binding SymbolName}" IsChecked="{Binding IsChecked, UpdateSourceTrigger=PropertyChanged}" Width="Auto" IsEnabled="{Binding IsCheckable, UpdateSourceTrigger=PropertyChanged}" Focusable="True" ToolTipService.ShowOnDisabled="True" ToolTipService.IsEnabled="{Binding IsCheckable, Converter={StaticResource BooleanReverseConverter}, UpdateSourceTrigger=PropertyChanged}" ToolTipService.ToolTip="{Binding TooltipText}"/> </Grid> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTemplateColumn Width="*"> <DataGridTemplateColumn.Header> <TextBlock Text="{Binding ElementName=MemberSelectionControl, Path=MembersHeader}" Background="{DynamicResource {x:Static vsui:HeaderColors.DefaultBrushKey}}" /> </DataGridTemplateColumn.Header> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Grid Background="{DynamicResource {x:Static vsui:HeaderColors.DefaultBrushKey}}"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" MinWidth="186" Width="Auto" Margin="5, 2, 0, 2"> <Image x:Name="GlyphOfMember" Margin="8, 0, 5, 0" Width="16" Height="16"> <Image.Source> <MultiBinding x:Uid="MultiBinding_1" Converter="{StaticResource ThemedImageSourceConverter}"> <Binding x:Uid="Binding_1" Path="Glyph" /> <Binding x:Uid="Binding_2" Path="(platformimaging:ImageThemingUtilities.ImageBackgroundColor)" RelativeSource="{RelativeSource Self}" /> <Binding x:Uid="Binding_3" Source="{x:Static vsutil:Boxes.BooleanTrue}" /> </MultiBinding> </Image.Source> </Image> <TextBlock x:Name="MemberName" Text="{Binding SymbolName}" Margin="0, 0, 5, 0" ToolTip="{Binding Accessibility}" Foreground="{DynamicResource {x:Static vsshell:VsBrushes.ToolWindowTextKey}}"/> </StackPanel> </Grid> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTemplateColumn Width="100" x:Name="AbstractColumn"> <DataGridTemplateColumn.Header> <TextBlock Text="{Binding ElementName=MemberSelectionControl, Path=MakeAbstractHeader}" Background="{DynamicResource {x:Static vsui:HeaderColors.DefaultBrushKey}}" /> </DataGridTemplateColumn.Header> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Grid Background="{DynamicResource {x:Static vsui:HeaderColors.DefaultBrushKey}}"> <CheckBox HorizontalAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" VerticalContentAlignment="Center" Visibility="{Binding MakeAbstractVisibility}" IsEnabled="{Binding IsMakeAbstractCheckable, UpdateSourceTrigger=PropertyChanged}" AutomationProperties.Name="{Binding MakeAbstractCheckBoxAutomationText}" Focusable="True" Margin="0, 2, 0, 2" IsChecked="{Binding MakeAbstract, UpdateSourceTrigger=PropertyChanged}"> </CheckBox> </Grid> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> <StackPanel Grid.Column="1" Orientation="Vertical" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="0, 5, 0, 0" Width="Auto"> <Button x:Name="SelectAllButton" x:Uid="SelectAllButton" Padding="{StaticResource ResourceKey=ButtonControlsPadding}" Content="{Binding ElementName=MemberSelectionControl, Path=SelectAll}" Click="SelectAllButton_Click" Margin="2, 0, 0, 7" Width="Auto" Height="Auto" /> <Button x:Name="DeselectAllButton" x:Uid="DeselectAllButton" Padding="{StaticResource ResourceKey=ButtonControlsPadding}" Content="{Binding ElementName=MemberSelectionControl, Path=DeselectAll}" Click="DeselectAllButton_Click" Margin="2, 2, 0, 7" Width="Auto" Height="Auto" /> <Button x:Name="SelecDependentsButton" x:Uid="SelecDependentsButton" Padding="{StaticResource ResourceKey=ButtonControlsPadding}" Content="{Binding ElementName=MemberSelectionControl, Path=SelectDependents}" Visibility="{Binding ShowCheckDependentsButton, Converter={StaticResource BooleanToVisibilityConverter}}" Click="SelectDependentsButton_Click" Margin="2, 2, 0, 7" Width="Auto" Height="Auto"/> <Button x:Name="SelectPublicButton" x:Uid="SelectPublicButton" Content="{Binding ElementName=MemberSelectionControl, Path=SelectPublic}" Visibility="{Binding ShowPublicButton, Converter={StaticResource BooleanToVisibilityConverter}}" Margin="2, 0, 0, 0" Click="SelectPublic_Click" Padding="{StaticResource ResourceKey=ButtonControlsPadding}" Width="Auto" Height="Auto"/> </StackPanel> </Grid> </UserControl>