xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:cal="http://www.caliburnproject.org"
xmlns:extToolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit/extended"
- Title="ContainerPropertiesView" Height="500" Width="300"
+ Title="ContainerPropertiesView" Height="507" Width="400"
Icon="/PithosPlus;component/Images/PithosTaskbar.png"
Background="{StaticResource {x:Static SystemColors.ControlBrushKey}}">
<Window.Resources>
</Grid>
</TabItem>
- <TabItem Header="Metadata">
- <DataGrid ItemsSource="{Binding Tags}" x:Name="Tags"
- AutoGenerateColumns="False" CanUserAddRows="True" >
- <DataGrid.Columns>
- <DataGridTemplateColumn >
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <Button Content=" - " Command="DataGrid.DeleteCommand"/>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- <DataGridTextColumn Binding="{Binding Name}" Header="Key" />
- <DataGridTextColumn Binding="{Binding Value}" Header="Value" />
- </DataGrid.Columns>
- </DataGrid>
- </TabItem>
+ <TabItem Header="Metadata">
+ <StackPanel>
+ <StackPanel Orientation="Horizontal">
+ <TextBox x:Name="CurrentTag_Name" Width="145" Margin="5" Grid.Row="6"/>
+ <TextBox x:Name="CurrentTag_Value" Width="145" Margin="5" Grid.Row="6"/>
+ <Button x:Name="AddTag" Content="Update" Margin="5"/>
+ </StackPanel>
+ <DataGrid x:Name="Tags" AutoGenerateColumns="False" GridLinesVisibility="None"
+ IsReadOnly="False"
+ CanUserDeleteRows="True"
+ CanUserAddRows="False">
+ <DataGrid.Columns>
+ <DataGridTextColumn Binding="{Binding Name}" Header="Key" MinWidth="150" IsReadOnly="True"/>
+ <DataGridTextColumn Binding="{Binding Value}" Header="Value" MinWidth="100" IsReadOnly="True"/>
+ </DataGrid.Columns>
+ </DataGrid>
+ <Button x:Name="DeleteTag" Content="Delete"
+ Command="DataGrid.DeleteCommand" CommandTarget="{Binding ElementName=Tags}"
+ Style="{StaticResource ResourceKey=ButtonStyle}" HorizontalAlignment="Left" />
+ </StackPanel>
+ </TabItem>
<TabItem Header="Policies">
items.Apply(collection.Add);
}
+ private MetaValue _currentTag;
+ public MetaValue CurrentTag
+ {
+ get { return _currentTag; }
+ set
+ {
+ _currentTag = (value == null) ? new MetaValue() : value.Clone();
+ _currentTag.PropertyChanged += (o, e) => NotifyOfPropertyChange(() => CanAddTag);
+
+ NotifyOfPropertyChange(() => CurrentTag);
+ NotifyOfPropertyChange(() => CanAddTag);
+ }
+ }
+
private readonly ObservableCollection<MetaValue> _tags;
public ObservableCollection<MetaValue> Tags
{
get { return _tags; }
}
+ public bool CanAddTag
+ {
+ get { return !String.IsNullOrWhiteSpace(CurrentTag.Name); }
+ }
+
+ public void AddTag()
+ {
+ var existingTag = Tags.FirstOrDefault(tag => tag.Name == CurrentTag.Name);
+ if (existingTag == null)
+ Tags.Add(CurrentTag.Clone());
+ else
+ {
+ existingTag.Value = CurrentTag.Value;
+ }
+ }
+
/* private readonly ObservableCollection<MetaValue> _policies;
public ObservableCollection<MetaValue> Policies
{
_tags = new ObservableCollection<MetaValue>();
_tags.CollectionChanged += (sender, evt) => { TagsChanged = true; };
+ CurrentTag=new MetaValue();
/*_policies = new ObservableCollection<MetaValue>();
_policies.CollectionChanged += (sender, evt) => { PoliciesChanged = true; };
*/