C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■86539 / 親階層)  WPF、ItemsControlでConverterに渡す値
□投稿者/ かい (16回)-(2018/02/10(Sat) 02:37:54)

分類:[.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="&#9654;"></Run>
                <Run Text="{Binding Path=Title}"></Run>
            </TextBlock>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>


編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: WPF、ItemsControlでConverterに渡す値 /Hongliang
 
上記関連ツリー

WPF、ItemsControlでConverterに渡す値 / かい (18/02/10(Sat) 02:37) #86539 ←Now
Re[1]: WPF、ItemsControlでConverterに渡す値 / Hongliang (18/02/10(Sat) 06:32) #86540
  └ Re[2]: WPF、ItemsControlでConverterに渡す値 / かい (18/02/10(Sat) 16:27) #86542
    └ Re[3]: WPF、ItemsControlでConverterに渡す値 / Hongliang (18/02/10(Sat) 19:28) #86544
      └ Re[4]: WPF、ItemsControlでConverterに渡す値 / かい (18/02/11(Sun) 20:31) #86546 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信