如果我在WPF中SFSafariViewController
内有UIViewController
ListBox
,我将如何引用Grid
个DataTemplate
Grid
正确吗?
我要做的是让ColumnDefinition
包含每个包含3列的网格。最后两列的圆圈可以是红色或绿色。为了绘制圆圈,我使用的是ListBox
,为了将其变成圆形,我只想将椭圆的宽度绑定到Ellipse
的高度Row
。 1}}。
由于Grid
中每个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
这导致每个椭圆都是一个大的椭圆形(椭圆形)而不是我想要的圆形,我认为这是由于我的不正确的绑定。是否有另一种方法可以绑定到您已经在同一get-edid
内的属性?
答案 0 :(得分:0)
我认为你要找的是Stretch =“Uniform”这应该画一个圆圈,填满你行内的空间。