2017-03-16 9 views
0

私が必要とするのは、すべての列がコンテンツコントロールによって拡大されないことを保証することです。今それはあります。私はここに解決策を見つけたenter link description here。それは動作しますが、ListBoxの幅にバインドする代わりに、何らかの方法で項目テンプレートのグリッド幅にバインドすることが可能かどうか疑問に思っていますか?それが可能ならば、パフォーマンスの面では適切な方法でしょうか?DataTemplateのグリッドプロパティをその列定義にバインドする

<telerik:RadListBox.ItemTemplate> 
       <DataTemplate> 
        <Grid> <-- need to bind this Grid Width 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="*" /> <-- to these columns width for further calculations 
          <ColumnDefinition Width="*" /> 
          <ColumnDefinition Width="*" /> 
         </Grid.ColumnDefinitions> 
+0

私はあなたがかなり確信しています:

<Grid x:Name="ParentGrid"> <Grid.ColumnDefinitions> <ColumnDefinition Width="{Binding Path=ActualWidth, ElementName=ParentGrid, Converter={StaticResource YourConverter}"/> <!-- ... --> </Grid.ColumnDefinitions> <!-- ... --> </Grid> 

他の方法は次のように親としてGridをバインドすることですおそらく 'Auto'、ネストされたグリッド、あるいはおそらく' MaxWidth/MinWidth'が必要でしょう。完全なレイアウトは表示されませんので、わかりにくいですが、列幅を明示的に設定する必要はありません。 – Sinatr

答えて

1

あなたは好きな親Gridに名前を付けてそれに特異的に結合することができます。

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="{Binding Path=ActualWidth, 
              RelativeSource={RelativeSource AncestorType={x:Type Grid}}, 
              Converter={StaticResource YourConverter}"/> 
     <!-- ... --> 
    </Grid.ColumnDefinitions> 
    <!-- ... --> 
</Grid> 
関連する問題