|
NullReference Exception - Object reference not set to an instance of an object.
I am calling the findname in the middle of the prog after the user has entered some parameters (in other textboxes).
Will try to modify the XML if I figure out the syntax.
|
|
|
|
|
my:AutoCompleteBox Style="{StaticResource acbStyle}" TextBoxStyle="{StaticResource acbTxtStyle}"
I managed to set the Casing to Upper in XAML by setting a textBox Style with Casing = Upper and the code above.
Thanks for the help as this is much simpler.
However I need to use the code method too. I need to move the cursor to the left or right depending on the input characters. Since Autocomplete box does not have a SelectionStart property I need to use the TextBox template again.
So can someone reply why I am getting a NullReference Exception when I use the code posted earlier?
|
|
|
|
|
Update -
Managed to fix all problems finally. The null Exception was showing because the property is named "Text" and not "PART_EditableTextBox" in AutocompleteBox. Thanks again.
One last question.
I am using the Populated Event to check if there are any items in the dropdown list. The list is given through PopulatedEventArgs with the Data property. Since this is IEnumerable type, what is the easiest way to check if the list is empty or not?
I worked around it be copying the data to a listbox and then checking the items count of the listbox. But this is not the best way for sure.
|
|
|
|
|
Using RowDetailsTemplate might be useful to implement nested datagrids.
For example, your normal datagrid might look like this.
<data:DataGrid Name="ParentDG" AutoGenerateColumns="False" RowDetailsVisibilityMode="VisibleWhenSelected">
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="<<ColumnInfo>>" Binding="{Binding <<BindingInfo>>}" IsReadOnly="True" />
...
</data:DataGrid.Columns>
<data:DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<data:DataGrid Name="NestedDG"></data:DataGrid>
</StackPanel>
</DataTemplate>
</data:DataGrid.RowDetailsTemplate>
</data:DataGrid>
Note that the RowDetailsVisibilityMode is set to "VisibleWhenSelected". Thus, whenever you click on a row in the datagrid, the content of rowdetailstemplate is displayed.
The only plumbing left now is to set the datasource of the inner-grid. You can do that by following these steps:
1. Create an event handler for "RowDetailsVisibilityChanged" event
ParentDG.RowDetailsVisibilityChanged += new EventHandler<datagridrowdetailseventargs>(ParentDG_RowDetailsVisibilityChanged);
2. Define the event handler to set the data-source for the inner-grid.
void ParentDG_RowDetailsVisibilityChanged(object sender, DataGridRowDetailsEventArgs e)
{
DataGrid nestedGrid = (DataGrid)e.DetailsElement.FindName("NestedDG");
if (e.Row.DetailsVisibility == Visibility.Visible)
{
nestedGrid.ItemsSource = <<Set the item source for the nested grid here>>;
}
}
Note that we obtian the nested grid from the DetailsElement and set the item source for the nested datagrid.
SOURCE : By implementation in my project and also Silverlight Official Forum
|
|
|
|
|
Thank you for posting this, but as you've posted this in a Q and A forum, there will come a point where this disappears from the front page. A better approach would be for you to convert this into a Tip/Trick here on the site.
|
|
|
|
|
Hi everyone,
My question is regarding XAML.
If I have to design the GUI, I can either drag and drop the controls onto the page and adjust them accordingly OR in xaml I can use the grid rows and columns sizes, etc and place the controls in there...
Question:
It seems to me that drag and drop seems easier than playing with the rowand column definitions, etc...
So, what is the benefit of doing the design in xaml with the grid and column and rows definitions?
Thank you
|
|
|
|
|
In my view, you can drag drop a control more easily to the form. But when it comes to applying some styles to those controls XAML is much better.
Also some things like Gradient are much better and easier to play using XAML.
Looking for others' reply on this thread..
Hope this helps.
All the best.
|
|
|
|
|
Drag and drop layout is often OK as a starting point. However, if you want your UI to work properly on a variety of screen sizes (or with a variety of window sizes) a grid based layout should be preferred, you get much more control over how the controls are re-arranged as the user resizes the form.
|
|
|
|
|
D&D is so... well winforms, I think asp.net also had the D&D/ absolute position option, no one ever used it AFAIK. I suspect you are going to run into a large number of issues as your UI gets more complex. I mean more than you will with xaml.
As stated, styling is going to be easier with xaml.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
I seem to recall hacking around with D&D for about an hour on my first WPF day - been typing XAML ever since. I suppose it is down to personal preference but at some point you are going to have to type some XAML so why not do it all the time?
|
|
|
|
|
Well my personal opinion will be to add controls by writing in the XAML rather than dragging from the toolbox. I have seen my Senior developer(who doesn't have much experience in WPF) adding controls in a Stackpanel by dragging into it!! Don't know how she did it, but then i corrected it by doing it in XAML.
Its better to use Grid.RowDefinitions and ColumnDefinitions as this is how Grid is meant to work, to add controls in Rows and Columns(here again the senior developers just dragged without using any Row or Column definitons!! ). Its much easier to handle the margins for your control, and styling the form will be much better and neater.
People with high attitude deserve the standing ovation of our highest finger!
My Technical Blog![ ^]
|
|
|
|
|
Don't do D&D ... create your XAML by hand, you'll get a better understanding of the syntax and you WILL experience less layout issues. Fact.
Toolbox is so last week ...
|
|
|
|
|
WPF TextBox - setting caret so hard! Following code doesn't change a thing!
(But works if I run the damn thing under Visual Studio debugger, stop working if I disable the breakpoints!)
<br />
<StackPanel Name="pnFreeTxt" Grid.Row="0" Grid.Column="0" VerticalAlignment="Top" Visibility="Collapsed"><br />
<TextBox Name="SomeTextValues" Width="150px" GotFocus="SomeTextValues_GotFocus" PreviewMouseUp="SomeTextValues_PreviewMouseUp"></TextBox><br />
</StackPanel><br />
<br />
private void SomeTextValues_GotFocus(object sender, RoutedEventArgs e)<br />
{<br />
base.OnGotFocus(e);<br />
SomeTextValues.CaretIndex = FreeTextValues.Text.Length + 2;<br />
return;<br />
}<br />
<br />
private void SomeTextValues_PreviewMouseUp(object sender, MouseButtonEventArgs e)<br />
{<br />
SomeTextValues.CaretIndex = FreeTextValues.Text.Length + 2;<br />
SomeTextValues.ReleaseMouseCapture();<br />
e.Handled = true;<br />
return;<br />
}<br />
This doesn't help because I want caret set before user mouse down (auto focus on the textbox).[^]
Some guys are having similar issue with SomeTextBox.SelectAll()[^]
dev
modified on Friday, March 4, 2011 4:34 AM
|
|
|
|
|
1) Anyone know if it's possible to use MS Office themes to change the look of a WPF or Silverlight app at runtime?
2) Along those lines, anyone know wat format the MS Office Themes are in?
Thanks
Everything makes sense in someone's mind
|
|
|
|
|
Kevin Marois wrote: 1) Anyone know if it's possible to use MS Office themes to change the look of a WPF or Silverlight app at runtime?
Not directly, no. But you can simulate them.
|
|
|
|
|
You'd have some legal issues using themes from office directly. Office isn't written in WPF anyways, so they wouldn't help you much. I'd suggest buying one of the many WPF UI libraries out there... they usually cost around $300 to $600 and all of them have all the Office theming / ribbon controls, etc. already done for you. You'd spend months / years duplicating that effort, so the $300 to $600 is well worth it .
|
|
|
|
|
This is the price i pay when i mixed silverlight and aspx pages in my application.
Good day guys, have some done this before ?
I want to redirect to a xaml page from a aspx page. i am using response.redirect.
Thanks
Vuyiswa Maseko,
Spoted in Daniweb-- Sorry to rant. I hate websites. They are just wierd. They don't behave like normal code.
C#/VB.NET/ASP.NET/SQL7/2000/2005/2008
http://www.vuyiswamaseko.com
vuyiswa@its.co.za
http://www.itsabacus.co.za/itsabacus/
|
|
|
|
|
|
Thanks for your answer man, i think its too much work. I used the Deep path and its wonderful. So when i say deep path i mean you can access a xaml page fro aspx .net , it looks something like this
<br />
http:
that # is doing the work.
Thanks
Vuyiswa Maseko,
Spoted in Daniweb-- Sorry to rant. I hate websites. They are just wierd. They don't behave like normal code.
C#/VB.NET/ASP.NET/SQL7/2000/2005/2008
http://www.vuyiswamaseko.com
vuyiswa@its.co.za
http://www.itsabacus.co.za/itsabacus/
|
|
|
|
|
|
Vuyiswa Maseko,
Spoted in Daniweb-- Sorry to rant. I hate websites. They are just wierd. They don't behave like normal code.
C#/VB.NET/ASP.NET/SQL7/2000/2005/2008
http://www.vuyiswamaseko.com
vuyiswa@its.co.za
http://www.itsabacus.co.za/itsabacus/
|
|
|
|
|
Hi I'm new here and also new to WPF. I'm an Electronics engineer and use C# for programming microcontrollers. On Windows I have some programming background in Delphi but that was about 8years ago.
Anyway I am working on a project now that requires a nice user interface for Windows so I am trying to learn WPF.
1.
The first problem is that I need a scrollable panel that can have up to 50,000 listboxes. I tested different controls and found that ListView is the best since it can virtualize. Once the listboxes are created the application works just fine but creating all those listboxes is taking ages. Loading time is acceptable for about 5000 items then it starts to increase exponentially. Is there any way around this?
2.
I am trying another approach where I have only a set of 15 listboxes and store the data in an array. When the user clicks for the next item I need to move the data from one listbox to the other and load the last box with data from the array. The problem is that the listboxes are named listbox1,listbox2....listbox15 so I cant put the code in a loop. Is it possible to bind the listboxes to part of the array so they automatically show the correct data according to the index selected?
PS - The listboxes are representing 100ms timeframes for a total of about 1hr20mins.
|
|
|
|
|
Its been said millions of times and I'm sure you'll hate to hear it for the million and one-th time:
If you think your window needs 50,000 items in it, you are going down the wrong road and need to rethink your approach.
Think about it, how can a user possibily interact with 50,000 items effectively? Even 5000 is too much. Heck, even 500 is too much. Remember, the user has to actually be able to FIND what hes looking for.
If you have more then 100 items per level, you are approaching your UI design wrong.
|
|
|
|
|
Thanks for your answer.
Well using the ListView, once it is loaded it is quite easy to scroll through the whole list and to the desired item. The only problem with this approach is that it takes too much time to create all those items.
I have switched to approach 2 now which loads instantly and managed scrolling through the items sequentially. Will try to add a scrollbar or slider to move through the list faster. I am doing the binding from array to listboxes manually though.
Do you have an answer to question No 2?
|
|
|
|
|
Unfortunately, you are designing your UI as an electronics engineer (since you are one) and not as a user or a software engineer . Your second approach sounds like you are "paging" 15 items at a time. I think that will hurt performance and is even worse in terms of UI design . 50,000 / 15 = 3334 pages!! Do you think anybody will want to scroll through 3334 pages? .
You didn't explain what data you are trying to display, but from your only description ("time frames"), perhaps a clickable graph would be better?
Otherwise, if I were you, I would post a CLEAR description of what data you are trying to display and we can suggest a better UI design.
|
|
|
|