I am currently getting to grips with the Infragistics WPF controls that they call NetAdvantage for WPF . So far I have found them easy to use, but the documentation of examples is very lax. Do not mistake me, these components are fantastic and do way more work for me than I would care to do myself, but if you Google a particular piece of their API invariable you will get pure documentation and no samples. If you are lucky someone has asked a specific question about it and you can skim their answers, but the likely hood of finding an answer to your question is negligible in my experience.
I still love the components, it just makes it a little more difficult to develop with them…
An example would maybe get us all on the same page:
I am using their Ribbon components in one of my applications and wanted to dynamically generate (using a binding) the menu options.
1: <igRibbon:XamRibbon.ApplicationMenu>
2:
3: <igRibbon:ApplicationMenu>
4: <igRibbon:MenuTool x:Name="uxTeamServerMenuTool" Caption="Team Server" ItemsSource="{Binding AvailableServers}" ItemTemplate="{DynamicResource tAvailableServers}" ButtonType="DropDown" LargeImage="ResourcesImagesTeamServerSelectIcon.png">
5: </igRibbon:MenuTool>
6: <igRibbon:MenuTool x:Name="uxTeamProjectMenuTool" Caption="Team Project" ItemsSource="{Binding AvailableProjects}" ButtonType="DropDown" SmallImage="ResourcesImagesTeamProjectSelectIcon.png">
7: </igRibbon:MenuTool>
8: <igRibbon:MenuTool x:Name="uxHeatConnectionMenuTool" Caption="Heat Server" ButtonType="DropDown">
9: </igRibbon:MenuTool>
10: <igRibbon:MenuTool x:Name="uxHeatApplicationMenuTool" Caption="Heat App" ButtonType="DropDown" >
11: </igRibbon:MenuTool>
12: <!-- Place a button in the footer of the ApplicationMenu that allows the user to quit the application. -->
13: <igRibbon:ApplicationMenu.FooterToolbar>
14: <igRibbon:ApplicationMenuFooterToolbar>
15: <igRibbon:ButtonTool Caption="Settings" Command="local:Commands.ClearSettingsCommand" />
16: <igRibbon:ButtonTool Caption="Exit" />
17: </igRibbon:ApplicationMenuFooterToolbar>
18: </igRibbon:ApplicationMenu.FooterToolbar>
19: </igRibbon:ApplicationMenu>
20: </igRibbon:XamRibbon.ApplicationMenu>
As you can see in line 4 there is a binding that does indeed populate the list. But I am having trouble getting the template to take. I want the Items listed as a set of radio buttons (kinda) and so I added a Template:
1: <DataTemplate x:Key="tAvailableServers" DataType="{x:Type tfs:TeamFoundationServer}">
2: <igRibbon:RadioButtonTool
3: Caption="{Binding Name}"
4: Tag="{Binding}"
5: LargeImage="ResourcesImagesTeamServerSelectIcon.png"
6: igRibbon:MenuToolBase.MenuItemDescription="{Binding Url.ToString}"/>
7: </DataTemplate>
This should have displayed what I wanted, but it seams to be ignored.
To allow this to work, all I needed to do was remove the x:Key from the template. But why can’t I specify a template by name. What if I wanted to have two templates and choose which one was displayed…
What to read next
Advice on using XamRibbon with Composite WPF
Provides guidance and code examples for integrating Infragistics XamRibbon with Composite WPF, including custom region adapters for dynamic …
TFS Sticky Buddy layout fun
A developer shares challenges and insights from building a TFS Sticky Buddy UI in WinForms and WPF, comparing layout issues and ease of use …
Creating a WPF Work Item Control
Learn how to build a custom WPF work item control for Visual Studio Team System, enabling WPF UI integration in work item forms using a …
Calling an object method in a data trigger
Explains how to call an object method in a WPF DataTrigger, the limitations with extension methods, and common errors when binding methods …
Detecting agile theatre with real delivery signals
Why Most Companies Operating Models Fail in Dynamic Markets
A concise comparison of Predictive and Adaptive Operating Models, explaining why traditional structures fail in dynamic markets and how …
Don’t Manage Dependencies, Remove Them
Explains why dependencies are a sign of poor system design and outlines steps to eliminate them by aligning teams, clarifying ownership, and …
The Estimation Trap: How Tracking Accuracy Undermines Trust, Flow, and Value in Software Delivery
Tracking estimation accuracy in software delivery leads to mistrust, fear, and distorted behaviours. Focus on customer value, flow, and …
Flow of Value vs Flow of Work – Misnomer or Useful Shorthand?
Compares “flow of value” and “flow of work” in Kanban, explaining why only validated outcomes count as value and stressing the need for …
Why Outsourcing DevOps Fails, and How Real Engineering Excellence Starts With Your Team
Avoid DevOps vendor lock-in, discover how true engineering excellence starts with partnership, not outsourcing. Ready to transform your …