신경써주셔서 감사합니다. ㅠㅠ…
[내 XAML만 표시를 해제한 View]
View구조의 데이터 이름만 가리고 구조만 보내드립니다.
[상위 ListBox가 있는 View]
원본 글에서 RecipeView(ContentView)
... 생략
<ListBox ItemsSource="{Binding 선택된컨테이너.컬렉션}"
SelectedItem="{Binding 선택된컨테이너.레시피뷰모델, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
VerticalContentAlignment="Stretch"
HorizontalContentAlignment="Stretch"
SelectionMode="Extended"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<behavior:Interaction.Behaviors>
<compositeBehavior:CompositeKeyDownBehavior DeleteCommand="{Binding RelativeSource={RelativeSource AncestorType=local:현재뷰}, Path=DataContext.커멘드}"
ShowEditViewCommand="{Binding RelativeSource={RelativeSource AncestorType=local:현재뷰}, Path=DataContext.커멘드}"></compositeBehavior:CompositeKeyDownBehavior>
</behavior:Interaction.Behaviors>
<ListBox.Resources>
<DataTemplate DataType="{x:Type 알고리즘타입1모델}">
<view:CompositeContextListView Height="Auto"
IsLabelVisible="{Binding DataContext.프로퍼티, RelativeSource={RelativeSource AncestorType=local:현재뷰}, Mode=TwoWay}"
CloseCommand="{Binding RelativeSource={RelativeSource AncestorType=local:현재뷰}, Path=DataContext.커멘드}"
ConnectVarHolderCommand="{Binding RelativeSource={RelativeSource AncestorType=local:현재뷰}, Path=DataContext.커멘드}">
<behavior:Interaction.Behaviors>
<compositeBehavior:DropCompositeBehavior Command="{Binding RelativeSource={RelativeSource AncestorType=local:현재뷰}, Path=DataContext.커멘드}"></compositeBehavior:DropCompositeBehavior>
</behavior:Interaction.Behaviors>
</view:CompositeContextListView>
</DataTemplate>
<DataTemplate DataType="{x:Type 알고리즘타입2모델}">
<view:CompositeListView Height="Auto"
IsLabelVisible="{Binding DataContext.프로퍼티, RelativeSource={RelativeSource AncestorType=local:현재뷰}, Mode=TwoWay}"
CloseCommand="{Binding RelativeSource={RelativeSource AncestorType=local:현재뷰}, Path=DataContext.커멘드}"
ConnectVarHolderCommand="{Binding RelativeSource={RelativeSource AncestorType=local:현재뷰}, Path=DataContext.커멘드}">
<behavior:Interaction.Behaviors>
<compositeBehavior:DropCompositeBehavior Command="{Binding RelativeSource={RelativeSource AncestorType=local:현재뷰}, Path=DataContext.커멘드}"></compositeBehavior:DropCompositeBehavior>
</behavior:Interaction.Behaviors>
</view:CompositeListView>
</DataTemplate>
</ListBox.Resources>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True" >
<Setter Property="Background" Value="Transparent" />
</Trigger>
</Style.Triggers>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border>
<Border.Style>
<Style TargetType="Border">
<Setter Property="BorderThickness" Value="3" />
<Setter Property="BorderBrush" Value="#1c1c1c" />
<Style.Triggers>
<DataTrigger Binding="{Binding 프로퍼티, RelativeSource={RelativeSource AncestorType=ListBoxItem}}"
Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Name="SelectionEffect">
<Storyboard>
<ColorAnimation AutoReverse="True" RepeatBehavior="Forever" Duration="0:0:1" To="#135f93" Storyboard.TargetProperty="BorderBrush.Color" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="SelectionEffect"></StopStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<ContentPresenter></ContentPresenter>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
<!-- Background of selected item when focussed -->
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="LightCyan"/>
<!-- Background of selected item when not focussed -->
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="LightGray" />
</Style.Resources>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
... 생략
[ListBox가 가지고있는 아이템 뷰 (문제의 뷰)]
원본 글에서 AlgorismView
<UserControl >
<UserControl.Resources>
<converter:알고리즘이름으로이미지를리턴하는컨버터 x:Key="알고리즘이름으로이미지를리턴하는컨버터"></converter:알고리즘이름으로이미지를리턴하는컨버터>
<dx:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter"></dx:BoolToVisibilityConverter>
<dx:BoolInverseConverter x:Key="BoolInverseConverter"></dx:BoolInverseConverter>
</UserControl.Resources>
<Grid>
<Border BorderThickness="3">
<Border.Style>
<Style TargetType="{x:Type Border}">
<Setter Property="BorderBrush" Value="#252526"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding 프로퍼티1, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Value="True">
<Setter Property="BorderBrush" Value="Orange"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding 프로퍼티2, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Value="True">
<Setter Property="BorderBrush" Value="Red"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding 프로퍼티3, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Value="True">
<Setter Property="BorderBrush" Value="Green"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
<DockPanel Margin="3">
<Grid DockPanel.Dock="Top"
Height="25">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="25"></ColumnDefinition>
<ColumnDefinition MinWidth="25"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Border Grid.Column="0"
Grid.ColumnSpan="5">
<Border.Style>
<Style TargetType="Border">
<Setter Property="Background" Value="#1f1f1f"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding 타입1}" Value="0">
<Setter Property="Background" Value="#1f1f1f"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding 타입2}" Value="1">
<Setter Property="Background" Value="#cc8d10"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding 타입3}" Value="2">
<Setter Property="Background" Value="#cf372c"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding 타입4}" Value="3">
<Setter Property="Background" Value="#005e9f"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
<Image Grid.Column="0"
Source="{Binding 프로퍼티, Converter={StaticResource 알고리즘이름으로이미지를리턴하는컨버터}}"
HorizontalAlignment="Center"
VerticalAlignment="Center"></Image>
<TextBlock Text="{Binding 프로퍼티}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="15"
Grid.Column="1">
</TextBlock>
<TextBlock VerticalAlignment="Center"
Width="250"
TextAlignment="Center"
TextTrimming="CharacterEllipsis"
TextWrapping="NoWrap"
FontWeight="Bold"
FontSize="15"
ToolTipService.BetweenShowDelay="0"
ToolTipService.InitialShowDelay="0"
ToolTip="{Binding 프로퍼티, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="2">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Text" Value="{Binding 프로퍼티, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=view, Path=IsLabelVisible}" Value="True">
<Setter Property="Text" Value="{Binding 프로퍼티, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
<UniformGrid Grid.Column="3"
Rows="1">
<Button Margin="0"
Padding="0"
ToolTip="커스텀 변수 추가"
ToolTipService.BetweenShowDelay="0"
ToolTipService.InitialShowDelay="0"
Command="{Binding 커멘드}">
<Image Source="{dx:DXImage 'SvgImages/Icon Builder/Actions_Add.svg'}"></Image>
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{convMVVM:EnumStateExtensions 프러퍼티1}" Value="TRUE">
<Setter Property="IsEnabled" Value="False"></Setter>
</DataTrigger>
<DataTrigger Binding="{convMVVM:EnumStateExtensions 프러퍼티2}" Value="TRUE">
<Setter Property="IsEnabled" Value="False"></Setter>
</DataTrigger>
<DataTrigger Binding="{convMVVM:EnumStateExtensions 프러퍼티3}" Value="TRUE">
<Setter Property="IsEnabled" Value="False"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
<Button Margin="0"
Padding="0"
ToolTip="커스텀 변수 삭제"
ToolTipService.BetweenShowDelay="0"
ToolTipService.InitialShowDelay="0"
Command="{Binding 커멘드}">
<Image Source="{dx:DXImage 'SvgImages/Icon Builder/Actions_Remove.svg'}"></Image>
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{convMVVM:EnumStateExtensions 프러퍼티1}" Value="TRUE">
<Setter Property="IsEnabled" Value="False"></Setter>
</DataTrigger>
<DataTrigger Binding="{convMVVM:EnumStateExtensions 프러퍼티2}" Value="TRUE">
<Setter Property="IsEnabled" Value="False"></Setter>
</DataTrigger>
<DataTrigger Binding="{convMVVM:EnumStateExtensions 프러퍼티3}" Value="TRUE">
<Setter Property="IsEnabled" Value="False"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
<dx:SimpleButton Margin="0"
Padding="0"
ButtonKind="Toggle"
IsChecked="{Binding 프로퍼티}">
<Image Source="{dx:DXImage 'SvgImages/XAF/Action_Workflow_Deactivate.svg'}"></Image>
</dx:SimpleButton>
<Button Margin="0"
Padding="0"
Command="{Binding ElementName=view, Path=커멘드}"
CommandParameter="{Binding ElementName=view, Path=DataContext}">
<Image Source="{dx:DXImage 'SvgImages/RichEdit/CloseHeaderAndFooter.svg'}"></Image>
</Button>
</UniformGrid>
</Grid>
<Grid Visibility="{Binding 프로퍼티, Converter={StaticResource BoolToVisibilityConverter}}"
DockPanel.Dock="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="150"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Image Grid.Column="1"
Grid.Row="0"
Source="{Binding Name, Converter={StaticResource 알고리즘이름으로이미지를리턴하는컨버터}}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Height="40">
</Image>
<Grid Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding 입력파라메터컬렉션}">
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type 파라메터 타입1}">
<varView:파라메터뷰 FontColor="Orange">
<behavior:Interaction.Behaviors>
<varBehavior:DropVarHolderBehavior Command="{Binding 커멘드}"></varBehavior:DropVarHolderBehavior>
<varBehavior:CtrlMouseDoubleClickBehavior Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:현재뷰}}, Path=ConnectVarHolderCommand}"
CompositeViewModel="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:현재뷰}}, Path=DataContext}"
VarHolderViewModel="{Binding }"
HolderType="Input"></varBehavior:CtrlMouseDoubleClickBehavior>
</behavior:Interaction.Behaviors>
</varView:파라메터뷰>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
<ItemsControl ItemsSource="{Binding 출력파라메터컬렉션}"
Grid.Row="1">
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type 파라메터 타입2}">
<varView:파라메터뷰 FontColor="Green">
<behavior:Interaction.Behaviors>
<varBehavior:DragVarHolderBehavior ParentLabel="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:현재뷰}}, Path=DataContext.프로퍼티}"></varBehavior:DragVarHolderBehavior>
<varBehavior:CtrlMouseDoubleClickBehavior Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:현재뷰}}, Path=커멘드}"
CompositeViewModel="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:현재뷰}}, Path=DataContext}"
VarHolderViewModel="{Binding }"
HolderType="Output"></varBehavior:CtrlMouseDoubleClickBehavior>
</behavior:Interaction.Behaviors>
</varView:파라메터뷰>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
<ItemsControl ItemsSource="{Binding 결과아이템컬렉션}"
Grid.Row="2">
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type 결과타입}">
<varView:형식이다른파라메터뷰 FontColor="IndianRed">
<behavior:Interaction.Behaviors>
<varBehavior:DragVarHolderBehavior ParentLabel="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:현재뷰}}, Path=DataContext.프로퍼티}"></varBehavior:DragVarHolderBehavior>
</behavior:Interaction.Behaviors>
</varView:형식이다른파라메터뷰>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
</Grid>
<Grid Grid.Column="2">
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding InputVarHolderCollection}"
Grid.Row="0">
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type varViewModel:VarHolderViewModel}">
<varView:형식이다른파라메터뷰 FontColor="Orange">
<behavior:Interaction.Behaviors>
<varBehavior:DropVarHolderBehavior Command="{Binding DropConnectCommand}"></varBehavior:DropVarHolderBehavior>
<varBehavior:CtrlMouseDoubleClickBehavior Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:현재뷰}}, Path=ConnectVarHolderCommand}"
CompositeViewModel="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:현재뷰}}, Path=DataContext}"
VarHolderViewModel="{Binding }"
HolderType="Input"></varBehavior:CtrlMouseDoubleClickBehavior>
</behavior:Interaction.Behaviors>
</varView:형식이다른파라메터뷰>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
<ItemsControl ItemsSource="{Binding 파라메터 컬렉션}"
Grid.Row="1">
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type 파라메터}">
<varView:형식이다른파라메터뷰 FontColor="Green">
<behavior:Interaction.Behaviors>
<varBehavior:DragVarHolderBehavior ParentLabel="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:현재뷰}}, Path=DataContext.프로퍼티}"></varBehavior:DragVarHolderBehavior>
<varBehavior:CtrlMouseDoubleClickBehavior Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:현재뷰}}, Path=커멘드}"
CompositeViewModel="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:현재뷰}}, Path=DataContext}"
VarHolderViewModel="{Binding }"
HolderType="Output"></varBehavior:CtrlMouseDoubleClickBehavior>
</behavior:Interaction.Behaviors>
</varView:형식이다른파라메터뷰>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
</Grid>
</Grid>
<Grid Visibility="{Binding FieldVisibility, Converter={StaticResource BoolToVisibilityConverter}}"
DockPanel.Dock="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBox Text="Execution Time(ms)"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Cursor="Arrow"
IsReadOnly="True"
Focusable="False"
Grid.Column="0">
</TextBox>
<TextBox Text="{Binding 프로퍼티}"
TextWrapping="Wrap"
AcceptsReturn="True"
IsReadOnly="True"
Grid.Column="1">
</TextBox>
</Grid>
<Grid Visibility="{Binding 프로퍼티, Converter={StaticResource BoolToVisibilityConverter}}"
DockPanel.Dock="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBox Text="Label"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Cursor="Arrow"
IsReadOnly="True"
Focusable="False"
Grid.Column="0">
</TextBox>
<TextBox Text="{Binding 프로퍼티}"
TextWrapping="Wrap"
AcceptsReturn="True"
Grid.Column="1">
</TextBox>
</Grid>
<Grid Visibility="{Binding 프로퍼티, Converter={StaticResource BoolToVisibilityConverter}}"
DockPanel.Dock="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBox Text="Comment"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Cursor="Arrow"
IsReadOnly="True"
Focusable="False"
Grid.Column="0"></TextBox>
<TextBox Text="{Binding 프로퍼티, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
TextWrapping="Wrap"
AcceptsReturn="True"
Grid.Column="1"></TextBox>
</Grid>
</DockPanel>
</Grid>
</UserControl>