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
內的財產?