2016-12-17 6 views
0

ListViewItemTemplateの中には、ScrollContentPresenterActualWidthというプロパティにアクセスすることができます。いくつかのシナリオでは、これは私のためによく働く:XAMLでは、他の要素がListViewのScrollContentPresenterにどのようにアクセスできますか?

<ListView Name="MyListView"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <Grid.Width> 
        <Binding Path="ActualWidth" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type ScrollContentPresenter}}" /> 
       </Grid.Width> 
       <!-- stuff goes here --> 
      </Grid> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

しかし、私はMyListViewをのScrollContentPresenterのActualWidthにその幅をバインドするためにいくつかの他のXAML要素が必要です。そのScrollContentPresenterに対応するListViewにDependencyPropertyがないので、どのように達成できますか?

答えて

0

このScrollContentPresenterに対応するListViewにDependencyPropertyがないので、どのように達成できますか?

短い回答:できません。

ListViewのビジュアルツリーを定義するControlTemplateでScrollContentPresenterが "非表示"なので、ListView自体の外部の要素はこのScrollContentPresenterの任意のプロパティにバインドできません。

他の要素が何らかの形でScrollContentPresenterに依存する場合は、コントロールのControlTemplateの一部である要素へのバインディングが不可能なため、何をしようとしているのかを再考する必要があります。

ListViewのControlTemplateの定義方法の詳細は、将来のバージョンで変更される可能性のある実装の詳細であり、外部要素が依存してはならないため、実際に可能であったとしても、そうすることは悪い考えです。

関連する問題