如果DataGrids子項通過轉換器,我需要將我的DataGrid的RowStyle屬性綁定到Visibility。問題是孩子存在DataTemplate中。我的代碼是我現在正在做的簡化版本,所以它可能沒有多大意義。但無論如何:如何將一個父項屬性綁定到子元素數據項
<DataGrid Name="dataGrid"
ItemsSource="{Binding Path=ListOfData}"
RowStyle="{StaticResource DataGridRowStyle}"
>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Name="textBlock" Source={Binding Path=Title}
<Image Name="image" Source="{Binding Path=Image}"/>
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
事情是,TextBlock和圖像可以單獨得到摺疊。如果兩者都摺疊,我需要DataGridRow摺疊或隱藏,所以你不會在網格中看到它。我的計劃是定義一個名爲'DataGridRowStyle'的RowStyle。樣式將由TextBlock和Images的Visibility屬性觸發,並將RowStyle的可見性設置爲摺疊狀態。
<Style TargetType="{x:Type DataGridRow}" x:Key="DataGridRowStyle">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Value="True">
<Condition.Binding>
<MultiBinding Converter="{StaticResource VisibilityConverter}">
<Binding ElementName="textBlock" Path="Visibility" />
<Binding ElementName="image" Path="Visibility" />
</MultiBinding>
</Condition.Binding>
</Condition>
</MultiDataTrigger.Conditions>
<Setter Property="Visibility" Value="Collapsed"/>
</MultiDataTrigger>
</Style.Triggers>
</Style>
不幸的是,我在運行時得到一個警告,其中System.Data無法對我的textBlock或image元素進行fint操作。我想你不能綁定到DataTemplate,或者我做錯了什麼?我能以某種方式做同樣的事情嗎?
你想,當用戶選擇它,倒塌像做你的行擴展當一行 – ethicallogics 2012-07-20 07:31:32