Hej! Det går lite framåt, man kan i "Property" använda sig av punktnotation. Visibility fungerar på stackpaneln, ska dock sätta höjden till 0, blir mer vad man tänker sig. Dock är det en liten pil före som inte försvinner, får leta lite på den. IsEnabled fungerar sämre, tror jag, den är klickbar iaf. Hittade en Style för både TreeView och TreeViewItem. Får labba lite till. Har du nu tips så tveka inte ;-)Gömma/förregla treeviewitems
Jag är ny på xbap-appar och fått ett projekt i knät som ska få lite ny funktionalitet.
Vi har ett xml, som driver en treeview. Redan nu har vi vissa attribut för noderna i xml:et som sedan visar olika ikoner framför texten för varje item, mha triggers i xaml-filen. Jag har nu lagt till fler attribut som ska symbolisera om ett visst element ska gömmas eller vara förreglad(typ som ett fil-träd med olika rättigheter på mappar). C# koden uppdaterar dessa attribut, när det behövs.
Jag har följande funderingar:
* Jag vill gömma/förregla treeviewitems beroende på attibut(@VisibleSyncValue, @EnabledSyncValue) i xml-trädet. Hur skriver jag en trigger som oberoende av nodnamn, tittar om attributet finns och isf gömmer/förreglar noden i det visuella trädet. (tex är ju IsVisible readonly)
* En bra sida som beskriver hur man kodar xaml, och triggers i synnerhet.
En kod snutt från det jag har lagt till:
<code>
<HierarchicalDataTemplate DataType="HeaderItem" ItemsSource="{Binding XPath=*}">
<StackPanel Orientation="Horizontal" Margin="2">
<Image Source="/Resources/Images/bookmark_12_16.png" Margin="0,0,4,0" Height="16" />
<TextBlock Text="{Binding XPath=@Name}" ToolTip="{Binding XPath=@Name}" FontWeight="Bold" />
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding XPath=@VisibleSyncValue}" Value="True">
<Setter Property="ToolTip" Value="True, ska synas" />
</DataTrigger>
<DataTrigger Binding="{Binding XPath=@VisibleSyncValue}" Value="False">
<Setter Property="ToolTip" Value="False, ska inte synas" />
</DataTrigger>
<DataTrigger Binding="{Binding XPath=@EnabledSyncValue}" Value="True">
<Setter Property="ToolTip" Value="True, ska vara klickbar" />
</DataTrigger>
<DataTrigger Binding="{Binding XPath=@EnabledSyncValue}" Value="False">
<Setter Property="ToolTip" Value="False, ska inte vara klickbar" />
</DataTrigger>
</DataTemplate.Triggers>
</HierarchicalDataTemplate>
</code>
Tack på förhand
/Jonas
:: VS08, xbap, treeview, xaml, triggerSv: Gömma/förregla treeviewitems
<code>
<HierarchicalDataTemplate DataType="HeaderItem" ItemsSource="{Binding XPath=*}">
<StackPanel Orientation="Horizontal" Margin="2">
<Image Source="/Resources/Images/bookmark_12_16.png" Margin="0,0,4,0" Height="16" />
<TextBlock Text="{Binding XPath=@Name}" ToolTip="{Binding XPath=@Name}" FontWeight="Bold" />
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding XPath=@VisibleSyncValue}" Value="True">
<Setter Property="StackPanel.Visibility" Value="Visible" />
<Setter Property="TreeViewItem.Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding XPath=@VisibleSyncValue}" Value="False">
<Setter Property="StackPanel.Visibility" Value="Collapsed" />
<Setter Property="TreeViewItem.Visibility" Value="Collapsed" />
</DataTrigger>
<DataTrigger Binding="{Binding XPath=@EnabledSyncValue}" Value="True">
<Setter Property="StackPanel.IsEnabled" Value="True" />
<Setter Property="TextBlock.Foreground" Value="Black" />
</DataTrigger>
<DataTrigger Binding="{Binding XPath=@EnabledSyncValue}" Value="False">
<Setter Property="StackPanel.IsEnabled" Value="False" />
<Setter Property="TextBlock.Foreground" Value="Gray" />
</DataTrigger>
</DataTemplate.Triggers>
</HierarchicalDataTemplate>
</code>
/Jonas