iSeller Commerce
iSeller POS Retail
iSeller POS F&B
iSeller POS Express
Crosslight
WebUI
ClientUI
What's New
Download Trial
Web Solution
Mobile Solution
Enterprise Solution
Custom Development
Blog
Community
Latest Development Blogs
ForumPostTopic
Browse By Tag
For result-filtered combobox functionality, I highly recommend you to look into the UXSearchBox control. You can bind the QueryText to the property in your ViewModel, perform the searching in server-side, and finally returns the data to be populated in the list.
For more information and walkthroughs on UXSearchBox, see UXSearchBox Overview.
Hope this helps,Jimmy
Hi Andrzej,
Yes, it's necessary to use the NavigationContextExtended since we extend the default navigation behavior.
You can always use NavigationContextExtended in all scenarios, it should work 100% reliable, whether the page is navigated from a local application or an external application.
As you pointed out, yes, it's possible to pass a parameter from dock button to the Window via the StartupParameters. The StartupParameters is defined in the WindowOptions instance that you pass along with the ApplicationURI.
Here's the code excerpt of the example that I took from our UXDesktopDock sample.
<Intersoft:UXStackItem Text="Interestingness" Command="Intersoft:WindowCommands.LaunchApplication" CommandTarget="{Binding ElementName=SampleDesktop}"> <Intersoft:UXStackItem.CommandParameter> <Intersoft:WindowOptions StartupParameters="Interestingness" ForceSingleInstance="True" ReactivateExistingInstance="True" Uri="/Intersoft.ClientUI.Samples.WindowControls;Intersoft.ClientUI.Samples.WindowControls.Views.UXDesktopDock.Photos"/> </Intersoft:UXStackItem.CommandParameter> </Intersoft:UXStackItem>
Of course, in your case, you can define the CommandParameter for your specific object such as UXDesktopDockButton, instead of UXStackItem.
If you need to pass a dynamic parameter, feel free to bind the StartupParameters to the object that contains the value you want to transfer. I.e., StartupParameters="{Binding ViewModel.DynamicValue}"
When you pass the WindowOptions that contains StartupParameters to the target application, and assuming the target is an IWindow, you can obtain the value of the parameters in the window.StartupParameters in the Load event of the window. With this technique, you can elegantly pass the parameters without intermediate/proxy code.
For an example, the following code obtains the parameter sent from the UXStackItem in the previous code example.
private void Photos_Loaded(object sender, RoutedEventArgs e) { FlickrPhotosViewModel model = new FlickrPhotosViewModel(); this.DataContext = model; if (this.StartupParameters == null) model.GetPhotosCommand.Execute("Interestingness"); else model.GetPhotosCommand.Execute(this.StartupParameters.ToString()); }
Let me know if it works in your end, or if you have other questions.
Hi Michael,
You can use friendly URL to pass the query string seamlessly through the UriMapper. If query string is not desired, you can also pass data through the "extraData" parameter in the Navigate method. This way of passing data is also compatible with the WPF counterpart of the UXFrame.
For code sample, check out How-to: Navigate to a Page with Extra Data.
The new hotfix is now available (build 4), which includes the fix to this issue.
In your code, use this.NavigationContextExtended.QueryString in order to access the parameter.
The e.QueryString in the OnNavigatedTo method is populated correctly when navigated locally. However, it seems to populated too late when the page is navigated from external application (through ClientUI application framework). Consequently, this caused an error when your code attempted to access the e.QueryString dictionary in the method.
The fix for the issue will be available in this month's hotfix due to release in a couple days.
Thanks,Jimmy
Hello,
This issue has been fixed, the hotfix will be released early next week.
Hi Chris,
Yes, it is possible. You can obtain the UXFrame element by inheritting the UXNavigationWindow class, and then access the "Navigator" property in OnApplyTemplate method which you need to override to configure more settings on the UXFrame.
However, be warned that INavigationContentLoader is Silverlight 4 specific API. It's not supported in SL3, WPF 4, nor WP7.
Do you have any specific scenarios that are unsupported in current ClientUI navigation framework?
You've got it right, thanks for sharing your solution. That is the technique to create custom item type in an items control.
In another common scenario related to style customization, you may want to use ItemContainerStyleSelector of the control when you need to customize the style of the same target item type based on specific conditions. This allows you to perform the style conditioning in a separate class without have to override the control's class. More information and example about ItemContainerStyleSelector can be found here.
Hi Ross,
Using the event handler in MVVM application is not recommended. You can easily capture the selected tab in your VM through the SelectedIndex property of the UXTabControl. For instance, "SelectedIndex={Binding MyVM.SelectedTabIndex}"
In your case, the EventTrigger is treated as a content and thus a tab is created to encapsulate the content, which is no longer needed when you used the correct MVVM design pattern. The "content encapsulation" complies with the ItemsControl concept in which it allows you to host any UIElement in the control.
Please let me know if my suggestion works for you, or if you have specific reasons to use EventTrigger.
or
Choose this if you're already a member of Intersoft Community Forum. You can link your OpenID account to your existing Intersoft Social ID.
Choose this if you don't have an Intersoft account yet. Your authenticated OpenID will be automatically linked to your new Intersoft account.
Enter your Wordpress Blogname