108 lines
7.0 KiB
XML
108 lines
7.0 KiB
XML
<UserControl x:Class="ClassicAssist.UI.Views.SkillsTabControl"
|
|
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:misc="clr-namespace:ClassicAssist.Misc"
|
|
xmlns:misc1="clr-namespace:ClassicAssist.UI.Misc"
|
|
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
|
xmlns:viewModels="clr-namespace:ClassicAssist.UI.ViewModels;assembly=ClassicAssist.Shared"
|
|
xmlns:valueConverters="clr-namespace:ClassicAssist.UI.Misc.ValueConverters"
|
|
xmlns:resources="clr-namespace:ClassicAssist.Shared.Resources;assembly=ClassicAssist.Shared"
|
|
xmlns:data="clr-namespace:ClassicAssist.UO.Data;assembly=ClassicAssist.Shared"
|
|
mc:Ignorable="d">
|
|
<d:DesignerProperties.DesignStyle>
|
|
<Style TargetType="UserControl">
|
|
<Setter Property="Background" Value="{DynamicResource ThemeBackgroundBrush}" />
|
|
</Style>
|
|
</d:DesignerProperties.DesignStyle>
|
|
<UserControl.DataContext>
|
|
<viewModels:SkillsTabViewModel />
|
|
</UserControl.DataContext>
|
|
<UserControl.Resources>
|
|
<ResourceDictionary>
|
|
<ResourceDictionary.MergedDictionaries>
|
|
<ResourceDictionary Source="../../Resources/DarkTheme.xaml" />
|
|
<ResourceDictionary Source="../../Resources/ResourceDictionary.xaml" />
|
|
</ResourceDictionary.MergedDictionaries>
|
|
</ResourceDictionary>
|
|
</UserControl.Resources>
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="110" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.Resources>
|
|
<valueConverters:LockStatusValueConverter x:Key="LockStatusValueConverter" />
|
|
<valueConverters:SetSkillLockMultiValueConverter x:Key="MenuItemMultiValueConverter" />
|
|
<!--ContextMenu in a different visual tree, https://stackoverflow.com/questions/3583507/wpf-binding-a-contextmenu-to-an-mvvm-command-->
|
|
<misc:BindingProxy x:Key="Proxy" Data="{Binding}" />
|
|
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
|
<Setter Property="Margin" Value="0,7,0,0" />
|
|
</Style>
|
|
<ContextMenu x:Key="ItemContextMenu">
|
|
<MenuItem Header="{x:Static resources:Strings.Set_Up}"
|
|
Command="{Binding Source={StaticResource Proxy}, Path=Data.SetSkillLocksCommand}"
|
|
CommandParameter="{x:Static data:LockStatus.Up}" />
|
|
<MenuItem Header="{x:Static resources:Strings.Set_Down}"
|
|
Command="{Binding Source={StaticResource Proxy}, Path=Data.SetSkillLocksCommand}"
|
|
CommandParameter="{x:Static data:LockStatus.Down}" />
|
|
<MenuItem Header="{x:Static resources:Strings.Set_Locked}"
|
|
Command="{Binding Source={StaticResource Proxy}, Path=Data.SetSkillLocksCommand}"
|
|
CommandParameter="{x:Static data:LockStatus.Locked}" />
|
|
<Separator />
|
|
<MenuItem Header="{x:Static resources:Strings.Use_skill}"
|
|
Command="{Binding Source={StaticResource Proxy}, Path=Data.UseSkillCommand}" />
|
|
</ContextMenu>
|
|
</Grid.Resources>
|
|
<ListView Grid.Column="0" ItemsSource="{Binding Items}" Margin="5"
|
|
GridViewColumnHeader.Click="GridViewHeaderOnClick" x:Name="listView"
|
|
SelectedItem="{Binding SelectedItem}" ContextMenu="{StaticResource ItemContextMenu}">
|
|
<ListView.View>
|
|
<GridView>
|
|
<misc1:SkillsGridViewColumn Header="{x:Static resources:Strings.Name}"
|
|
DisplayMemberBinding="{Binding Skill}" Width="130"
|
|
SortField="Name" />
|
|
<misc1:SkillsGridViewColumn Header="{x:Static resources:Strings.Value}" Width="70"
|
|
SortField="Value"
|
|
DisplayMemberBinding="{Binding Value}" />
|
|
<misc1:SkillsGridViewColumn Header="{x:Static resources:Strings.Base}" Width="70" SortField="Base"
|
|
DisplayMemberBinding="{Binding Base}" />
|
|
<misc1:SkillsGridViewColumn Header="+/-" Width="50" SortField="Delta"
|
|
DisplayMemberBinding="{Binding Delta, StringFormat={}{0:0.#}}" />
|
|
<misc1:SkillsGridViewColumn Header="{x:Static resources:Strings.Cap}" Width="70" SortField="Cap"
|
|
DisplayMemberBinding="{Binding Cap}" />
|
|
<misc1:SkillsGridViewColumn Header="{x:Static resources:Strings.Status}" Width="40"
|
|
SortField="LockStatus">
|
|
<misc1:SkillsGridViewColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<Image
|
|
Source="{Binding LockStatus, Converter={StaticResource LockStatusValueConverter}}"
|
|
HorizontalAlignment="Center" Width="40" Stretch="Uniform" Height="10"
|
|
VerticalAlignment="Center" />
|
|
</DataTemplate>
|
|
</misc1:SkillsGridViewColumn.CellTemplate>
|
|
</misc1:SkillsGridViewColumn>
|
|
</GridView>
|
|
</ListView.View>
|
|
</ListView>
|
|
<StackPanel Grid.Column="1" Margin="10,0,10,10">
|
|
<StackPanel.Resources>
|
|
<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="SkillStatesEnum">
|
|
<ObjectDataProvider.MethodParameters>
|
|
<x:Type TypeName="data:LockStatus" />
|
|
</ObjectDataProvider.MethodParameters>
|
|
</ObjectDataProvider>
|
|
</StackPanel.Resources>
|
|
<Button Content="{x:Static resources:Strings.Reset____}"
|
|
Command="{Binding ResetDeltasCommand, Mode=OneWay}" />
|
|
<TextBlock Text="{x:Static resources:Strings.All_skills_}" Margin="0,20,0,0" />
|
|
<ComboBox x:Name="comboBox" ItemsSource="{Binding Mode=OneWay, Source={StaticResource SkillStatesEnum}}"
|
|
Margin="0,5,0,0" SelectedIndex="0" />
|
|
<Button Content="{x:Static resources:Strings.Set}" Command="{Binding SetAllSkillLocksCommand, Mode=OneWay}"
|
|
CommandParameter="{Binding SelectedIndex, ElementName=comboBox}" />
|
|
<TextBlock Text="{x:Static resources:Strings.Total_base_}" Margin="0,30,0,0" TextWrapping="Wrap" />
|
|
<TextBlock Text="{Binding TotalBase}" FontWeight="Bold" Margin="0,3,0,0" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</UserControl> |