|
分類:[.NET 全般]
お世話になっています。
C#WPFの想定です。
ItemsControlのItemsSourceに以下の構造のクラスを指定したとして、
Converterに渡すものをクラスから、クラスのプロパティの一部に絞ることは可能でしょうか。
よろしければご指導下さい。
-構造-
public class EntityViewTitleHierarchy
{
#region Field
/// <summary>
/// Title
/// </summary>
public string Title { get; set; }
/// <summary>
/// CommandParameter用
/// </summary>
public NameTitle NameTitle { get; set; }
#endregion
}
※NameTitleはenum型です。
-希望する処理のイメージ-
<ItemsControl ItemsSource="{Binding Path=TitleList}"
Grid.Row="0" Grid.Column="0"
AlternationCount="{x:Static mscorlib:Int32.MaxValue}"
>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Resources>
<convert:ArrayConverterForTeleport x:Key="ArrayConverterForTeleport"/>
</TextBlock.Resources>
<TextBlock.InputBindings>
<MouseBinding Command="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type Window}}, f
Path=DataContext.CommandDispatching}"
MouseAction="LeftClick">
<MouseBinding.CommandParameter>
<MultiBinding Converter="{StaticResource ArrayConverterForTeleport}">
<!--以下のように、プロパティだけ渡してやりたいが、効かない-->
<Binding RelativeSource="{RelativeSource FindAncestor,
AncestorType={x:Type ItemsControl}}"
Path="DataContext.NameTitle"/>
<Binding RelativeSource="{RelativeSource Mode=TemplatedParent}"
Path="(ItemsControl.AlternationIndex)"/>
</MultiBinding>
</MouseBinding.CommandParameter>
</MouseBinding>
</TextBlock.InputBindings>
<Run Text="▶"></Run>
<Run Text="{Binding Path=Title}"></Run>
</TextBlock>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
|