xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:cal="http://www.caliburnproject.org"
xmlns:cnv="clr-namespace:Pithos.Client.WPF.Converters"
xmlns:model="clr-namespace:Pithos.Client.WPF.FileProperties"
- Title="Conflicts" Height="300" Width="500" x:Name="This"
- >
+ Title="Conflicts" Height="500" Width="500" x:Name="This" xmlns:my="clr-namespace:Microsoft.Windows.Controls.Core.Converters;assembly=WPFToolkit.Extended" Icon="/PithosPlus;component/Images/Pithos.ico">
<Window.Resources>
<ResourceDictionary>
<ContextMenu x:Key="RowMenu" DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}">
- <MenuItem Header="{Binding FilePath}" cal:Message.Attach="[Event MouseLeftButtonUp]=[Action GoToFile($dataContext)]"
- cal:Action.TargetWithoutContext="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}, Path=DataContext}"/>
- </ContextMenu>
- <Style x:Key="DefaultRowStyle" TargetType="{x:Type DataGridRow}">
- <Setter Property="ContextMenu" Value="{StaticResource RowMenu}" />
- </Style>
- <ResourceDictionary.MergedDictionaries>
+ <MenuItem Header="{Binding FilePath}" cal:Message.Attach="GoToFile"/>
+ </ContextMenu>
+ <ObjectDataProvider x:Key="ActionsList" MethodName="GetValues" ObjectType="{x:Type model:ConflictAction}">
+ <ObjectDataProvider.MethodParameters>
+ <x:Type TypeName="model:ConflictAction"/>
+ </ObjectDataProvider.MethodParameters>
+ </ObjectDataProvider>
+
+ <Style x:Key="DefaultRowStyle" TargetType="{x:Type DataGridRow}">
+ <Setter Property="ContextMenu" Value="{StaticResource RowMenu}" />
+ </Style>
+ <BooleanToVisibilityConverter x:Key="BoolToVisible" />
+ <my:InverseBoolConverter x:Key="BoolToInvisible" />
+ <ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..\PithosStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
- </ResourceDictionary>
+
+ </ResourceDictionary>
</Window.Resources>
+
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
- <ListBox x:Name="Conflicts" HorizontalContentAlignment="Stretch" Grid.Row="0">
- <ListBox.ItemTemplate>
- <DataTemplate>
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition />
- <ColumnDefinition Width="Auto"/>
- </Grid.ColumnDefinitions>
- <TextBlock x:Name="FilePath" Text="{Binding FilePath}" Grid.Row="0" Margin="5"/>
- <ComboBox x:Name="Action" ItemsSource="{cnv:EnumValues model:ConflictAction}"
- SelectedValue="{Binding Action}" Grid.Row="1"
- HorizontalAlignment="Right"
- HorizontalContentAlignment="Left"
- Width="110" Margin="5" Padding="5,2"
- />
- </Grid>
- </DataTemplate>
- </ListBox.ItemTemplate>
- </ListBox>
+ <DataGrid x:Name="Conflicts" HorizontalContentAlignment="Stretch" Grid.Row="0"
+ AutoGenerateColumns="false"
+ RowStyle="{StaticResource DefaultRowStyle}"
+ Visibility="{Binding Converter={StaticResource BoolToVisible}, Path=HasConflicts}"
+ >
+ <DataGrid.Columns>
+ <DataGridTextColumn x:Name="FilePath" Binding="{Binding FilePath}" Header="File" Width="*" IsReadOnly="True" />
+ <DataGridTextColumn x:Name="LocalModified" Binding="{Binding LocalModified}" Header="Local Date" Width="Auto" IsReadOnly="True"/>
+ <DataGridTextColumn x:Name="Reason" Binding="{Binding Reason}" Header="Reason" Width="Auto" IsReadOnly="True"/>
+ <DataGridComboBoxColumn x:Name="Action" Header="Action" Width="Auto"
+ ItemsSource="{Binding Source={StaticResource ActionsList}}"
+ SelectedValueBinding="{Binding Action}" >
+ <!-- <DataGridComboBoxColumn.CellStyle>
+ <Style TargetType="{x:Type DataGridCell}">
+ <Style.Triggers>
+ <Trigger Property="IsSelected" Value="True">
+ <Setter Property="IsEditing" Value="True" />
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+ </DataGridComboBoxColumn.CellStyle>-->
+ </DataGridComboBoxColumn>
+ </DataGrid.Columns>
+ </DataGrid>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center"
+ Visibility="{Binding Converter={StaticResource BoolToVisible}, Path=HasNoConflicts}"
+ FontWeight="Bold">There are no conflicts.</TextBlock>
<StackPanel Orientation="Horizontal" Grid.Row="2" HorizontalAlignment="Right">
<Button Name="Apply" Content="OK" Margin="5,5,10,5" Style="{StaticResource ButtonStyle}" IsDefault="False" />
<Button Name="Cancel" Content="Cancel" Margin="5,5,10,5" Style="{StaticResource ButtonStyle}" IsCancel="True" />