1
内网格行的高度。如果我在WPF有一个ListBox
具有Grid
里面的DataTemplate
,我怎么会引用Grid
的各种ColumnDefinition
正常吗?绑定到DataTemplate中
我想要做的是有一个ListBox
包含3个列的网格。最后2列有可以是红色或绿色的圆圈。为了绘制圆,我使用的是Ellipse
,为了使它成为一个圆,我只想将椭圆的宽度绑定到的高度,即Grid
。
由于只有1中的每个Grid
行的ListBox
,这将导致在Ellipse
保持为圆不管我怎么大小ListBox
或Grid
。
但是,我有问题,正确引用RowDefinition
从Grid
,它本身在DataTemplate
里面。我所拥有的目前是这样的:
<ListBox Grid.Row="0" x:Name="TermServListBox" ItemsSource="{Binding TermServs}">
<ListBox.Resources>
<converter:ValidPathToBgColor x:Key="ValPthToBgClr"/>
</ListBox.Resources>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid x:Name="MainTermServListGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding TServer}"/>
<Ellipse Grid.Column="1" Width="{Binding ElementName=MainTermServListGrid, Path=RowDefinitions/ActualHeight}" Fill="{Binding IsOldPathValid, Converter={StaticResource ValPthToBgClr}}"/>
<Ellipse Grid.Column="2" Width="{Binding ElementName=MainTermServListGrid, Path=RowDefinitions/Height}" Fill="{Binding IsNewPathValid, Converter={StaticResource ValPthToBgClr}}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
这导致每个椭圆是一个大的椭圆形(椭圆形)形状,而不是,我想我认为这是由于不当的结合我的一个圆。是否有另一种方法可以绑定到您已经在同一个DataTemplate
内的财产?