|
I tried to put in my code, but it kicks it out.
|
|
|
|
|
<grid name="TestGrid" showgridlines="True" height="768" width="1220">
<grid.columndefinitions>
<columndefinition
="" width="330">
<grid name="C1Grid" showgridlines="True">
<grid.rowdefinitions>
<rowdefinition height="200">
<columndefinition width="700">
<columndefinition width="*">
|
|
|
|
|
You need to encode XAML in pre blocks for me to be able to see it. All I see there is empty space.
|
|
|
|
|
<Grid Name="TestGrid" ShowGridLines="True" Height="768" Width="1220">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="330">
<Grid Name="C1Grid" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="200"></RowDefinition>
</Grid.RowDefinitions>
</Grid>
</ColumnDefinition>
<ColumnDefinition Width="700"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
</Grid>
|
|
|
|
|
What you need to do is:
<Grid Name="TestGrid" ShowGridLines="True" Height="768" Width="1220">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="330" />
<ColumnDefinition Width="700"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" Name="C1Grid" ShowGridLines="True" />
<Grid.RowDefinitions>
<RowDefinition Height="200" />
<RowDefinition Height="250" />
<RowDefinition />
</Grid.RowDefinitions>
</Grid.ColumnDefinitions>
</Grid> You can now add your items to the Grid in Column 0 as you desire.
|
|
|
|
|
Thanks. However, when I execute this code, the 2 rows in column 0 span thru column 1 and column 2. That seems to mess up columns 1 and 2, since I have 2 full UI columns in 1 and 2. I need the grid to stop and column 1.
|
|
|
|
|
Pete,
Thanks. I got it. There was a missing Grid tag and one too many Column definitions.
Next question. If I have the following Grid (which is the same), why doesn't putting TextBlocks in Row 2 work? It always puts the two text blocks in Row 0, no matter what value I put in Grid.Row. Putting the Text in Grid.Columns 0,1, or 2 works fine. But, not the rows.
<Grid Name="MiscGrid" ShowGridLines="True" Height="768" Width="1220">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="330"></ColumnDefinition>
<ColumnDefinition Width="700"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" Name="C1Grid" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="120"></RowDefinition>
<RowDefinition Height="180"></RowDefinition>
<RowDefinition Height="330"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
</Grid>
<TextBlock Grid.Row="2" Height="20" HorizontalAlignment="Left" Margin="0,0,0,0" Text="ZONE DESCRIPTIONS" VerticalAlignment="Top" FontSize="16" />
<TextBlock Grid.Row="3" Height="15" HorizontalAlignment="Left" Margin="0,0,0,0" Text="(25 chars max)" VerticalAlignment="Top" />
</Grid>
|
|
|
|
|
That's because you've put your TextBlock elements in the outer Grid . You need to put them in the inner Grid for it to lay out using that Grid positioning.
|
|
|
|
|
Well, that was a duh moment. Thanks for the info. Works perfectly now.
|
|
|
|
|
No problem. Any developer who says they don't have a Duh moment is a liar. I have several a week.
|
|
|
|
|
Which is best website to learn sliver light step by step for new developer?
|
|
|
|
|
There is no one such site - infact there would be multiple sites / tutorials that could help you get started.
http://www.silverlight.net/learn[^] could be one of the better ones.
You might also want to read about Silverlight from a book - nothing like reading a book to help you get started.
|
|
|
|
|
What would be your idea on using MVVM in a master-details project, where the details show on a different window?
|
|
|
|
|
I don't see any problem - let both the master and the detail - have separate views and view models that act as controller for these views.
|
|
|
|
|
The question is a little fuzzy. do you mean the Views as in the ASP master page? In which case we have main page that has the masterpage type info on it and a navigation frame. Each navigatedto view has a VM supporting it.
OR
Do you mean the data Master/Details structure, for this it is exactly like our old winforms, details at the top, gridview of child records and click through to the details of the child.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Yeap, I recognize fussiness!!! What I mean is, kindda, close to the first. Namely, dialogs. But I didn't want to say that word because the obvious answer would be something like "IDialogService" which, to me, is still terra incognita - I don't consider myself stupid but, whatever I do, I just can't get my head around the concept!!!
What I've tried so far is this:
The main view holds a ListView with all the records - bound to an ObservableCollection. Adding is done with a button that pops up a details dialog with an OK and a Cancel. Editing is done in a similar way. But, while adding works fine, editing doesn't. In editing, when I change the data, the ListItem behind is updated in real time, and the OK button seems non-responsive. What I want is the ListView item to be updated onlywhenthe OK button is pressed.
|
|
|
|
|
I always have a list and a selectedobject in my VM, the selected object is used to service the dialog. I use the same VM to service both the list and the dialog.
You need to implement IEditableObject on your model, this basically takes a copy of the object when you BeginEdit and either throws away the copy if you save or copies it back to the original if you cancel.
When the content of a field changes then I set the IsDataChanged and bind that to the Save button
I don't use a dialog service, I also do not do TDD so I don;t have to be pedantic in the MVVM design. I stick my dialog initiator in the code behind.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
I've never used IEditableObject and I don't know what to do with it! Could you give an example?
And someone would be so kind to me to explain why, when I add an item, the dialog works fine but, when I edit, hell breaks loose?
modified 12-Mar-12 8:51am.
|
|
|
|
|
To further Mycroft's answer, you might find the helper functionality I wrote about here[^] to be of some use.
|
|
|
|
|
I have a mediaelemnt playing a wmv file. Clicking on the media element I capture and store the corresponding time positions of the wmv playing file.
I then would like to create a new wmv file by merging small pieces of the original wmv file (just few seconds) starting from each time position saved.
I would like to know how to do it. Any suggestions?
A second question is: can I create a wmv file showing a single image for few seconds?
Thanks.
|
|
|
|
|
Hello,
I am using Expender.
I need to assign USerControl (written in another file) to expander's headerTemplate in code.
How can i do it?
|
|
|
|
|
Using a template like below might help you out.
<toolkit:Expander x:Name="ExpanderControl" ExpandDirection="Down" IsExpanded="True" >
<toolkit:Expander.HeaderTemplate>
<DataTemplate>
<UserControl myContrl />
</DataTemplate>
</toolkit:Expander.HeaderTemplate>
</toolkit:Expander>
|
|
|
|
|
A coworker and I were discussion the design for a WPF app. It's being built using MVVM.
We have a series of user control that are going to be added to the main window at runtime. The user controls to be added are determined by the data coming back from the repository. So for model A, add user control A, type B, add user control B, and so on. The main window's VM would call into the repository, get back a collection of models, and then for each mode, determine which user control to add to the grid in the main window.
He was adamant that the VM "should not know anything about views because this breaks the MVVM pattern." He insisted that you can do all this through data templates. he also suggested that I read up on MVVM and I'll see this is true. Now I'v read lots of MVVM artiicles and Josh Smith's book, and blogs galore. I have never hear this notion that the VM can't know about views (add views at runtime).
If you're going to add controls at runtime, then the main window VM is going to need to know about the views. I am working on another WPF app that has a toolbox and design surface (canvas). The user will be able to drag & drop controls off the toolbox onto the design surface. I don't see how this could be templated, and I'm pretty sure that there's no way to do this without the main window VM adding the controls to the main window view.
I'm open to opinions. Documentation would be good.
Everything makes sense in someone's mind
|
|
|
|
|
Opinion only I'm afraid, I'm not as well read as you but from what I can glean he is right although I am wary of being adamant, I prefer a little flexibility.
I would think you would have place holders of some description in the view that are bound back to a set of properties in the VM, the VM sets the properties according to the suppository.
I have gone as far as having all the controls in the view and just fiddling with the visibility of the container element. Note this is always limited to 2 or 3 controls.
How you would do this with templates I do not know.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Yes good point.
Visibility, can however, be controlled via binding.
Other items like collapsing an Accordion just do not work using binding and I have not found a decent way to implement this without accessing view controls in the view model.
|
|
|
|