|
For starters, you can have a look here. This article pretty much explains why we need KnownTypeAttribute .
AFAIK, you can use XmlSerializer in Silverlight (and the Serialize atrribute) although I have not tried it myself.
For this you need to use the SlSvcUtil tool when you are building the web service proxy.
You can then specify your parameters just like the the normal svcUtil tool.
None of my posts might solve your problem, since you are using asmx but I'm trying anyway.
|
|
|
|
|
Serialize isn't in Silverlight. I have to use DataContract. I'm working through it now. Thanks for the link
.45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
I posted the solution I came up with...
.45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
John Simmons / outlaw programmer wrote: I posted the solution I came up with...
Thanks for posting the solution - as you mentioned it isnt neat - but it works and thats what matters.
|
|
|
|
|
I am designing a WPF UserControl, and I'm not sure how to do part of it correctly. The main control to be consumed by the user will have three "sub-controls", that is controls that the main control composes to create the whole:
public class MainControl : UserControl {
public SubControl Sub1 {get; private set;}
public SubControl Sub2 {get; private set;}
public SubControl Sub3 {get; private set;}
}
public class SubControl : Canvas { // Can be any user control, I just happen to use a Canvas
public int Property1 {get; set;}
public string Property2 {get; set;}
}
What I would like to do is change the code so that the properties of the the SubControl's are editable in XAML. I'm aiming for something along the lines of:
<bbb:MainControl x:Name="abc">
<bbb.MainControl.Sub1 Property1="5" Property2="Hello"/>
<bbb.MainControl.Sub2 Property1="6" Property2="Goodbye"/>
</bbb:MainControl>
I have played around making the properties of SubControl DPs, as well as making each of the SubControl's DPs, but I keep getting error MC3057. The only way I have been able to get it to work is to add DPs to the MainControl for each of the properties of the SubControl, and bind them together. That's kind of ugly and scales poorly. Does anybody have any suggestions?
|
|
|
|
|
The proper syntax :
public class MainControl : UserControl {
public SubControl Sub1 {get; set;}
}
<bbb:MainControl x:Name="abc">
<bbb.MainControl.Sub1>
<SubControl x:Name="Sub1" Property1="5" Property2="Hello" />
</bbb.MainControl.Sub1>
</bbb:MainControl>
If you want to change it in run time you have to use Trigger.
For more information, please read WPF: A Beginner's Guide - Part 1 of n[^]
Regards
Joseph Leung
|
|
|
|
|
I was kind of hoping to avoid allowing a set on the SubControl properties. Allowing the consumer to change these properties would require unhooking and rehooking events, reinitializing the new property, etc. Maybe I'm just being lazy, but I was hoping that I could make the XAML manipulate the existing instances instead of creating new ones and hooking them up.
As for updating properties at run time, I would probably use code behind to update the properties.
|
|
|
|
|
This may work, but not too maintainable.
<UserControl.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames BeginTime="0:0:0" Storyboard.TargetProperty="Background">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Red" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</UserControl.Triggers>
If you going to make DependencyProperty, you can inherit from current properties
public static readonly DependencyProperty OrientationProperty =
VirtualWrapPanel.OrientationProperty.AddOwner(typeof(VirtualWrapPanelView));
Then Bind them in Xaml.
Regards
Joseph Leung
|
|
|
|
|
I have a large view model which can take several seconds to construct. The view model contains many ObservableCollections which only support changes from the UI thread. This forces me to construct the view model on the UI thread which causes the UI to hang for the duration of the construction time. It would be far nicer if I could do this on a background thread and display a progress dialog while it completes. Is there a way that I could achieve this?
Thanks for your help!
Dan
|
|
|
|
|
daniel radford wrote: Is there a way that I could achieve this?
Maybe this link can help you implement loading on a background thread.
|
|
|
|
|
That looks like just the thing.. thanks!
|
|
|
|
|
I have a silverlight 3.0 application which is a business data editor.
Up until now I've had only a single group accessing the application and that works just fine. I applied group policies to the folder the application lives in.
Now I am about to publish two editors that open the application up to two other groups. Our company is an ISO company and I have to implement security as follows:
MainProgram -- all groups have access
EditorA EditorB EditorC EditorD EditorE EditorF
RW GrpA RW GrpA RW GrpA RW GrpA RW GrpA RW GrpA
R GrpB R GrpB -- GrpB -- GrpB RW GrpB -- GrpB
R GrpC R GrpC -- GrpC -- GrpC -- GrpC RW GrpC
For the editors that group b and c do not have access to, I should be able to limit access within the menu. But does anyone have suggestions as to how I manage the readonly right for the groups in the other editors?
Thanks,
Michael
|
|
|
|
|
You will need to implement your own logic for this - AFAIK, there is no extra support in Silverlight to implement such permissions.
|
|
|
|
|
I intended to implement my own logic.
I guess I was looking for more guidance on that.
For example, how does the menu get the group the user is in?
|
|
|
|
|
LongRangeShooter wrote: I intended to implement my own logic.
One way could be to load all your permissions (to groups etc - via a web service) during logon and then display only those groups that you have access to in your menu.
|
|
|
|
|
I was running through some code today and noticed that this.Resources (resources defined in resource dictionaries, like styles and such) was EMPTY. Of course, any style I tried to load came back as null. What could I have done to cause this?
MY-FACE-IS-RED SOLUTION
=======================
I was using this.Resources instead of Application.Current.Resources .
.45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
modified on Tuesday, May 4, 2010 1:49 PM
|
|
|
|
|
John Simmons / outlaw programmer wrote: What could I have done to cause this?
Can I buy a first clue? I have none...
|
|
|
|
|
You're not the one that needs a clue. It's me. See OP...
.45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
In a regular WinForms app, it would be: change the Build Action from "None" to "Embedded Resource". Don't know how Silverlight would affect this though.
See, talking about it sometimes helps...
|
|
|
|
|
Did you use a resource dictionary to store your resources? Or did you use App.xaml?
Check either one to ensure your styles are still there...
|
|
|
|
|
The files are okay. It was a PIBKAC. See solution posted in OP.
.45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
Hi Gurus,
I have an Image object in my main window XAML file. I need to associate an icon/image to this Image as per the user selection.
<Image x:Name="AssociatedIcon" Margin="2,2,2,2" Width="32" Height="32" Grid.Column="1" Grid.ColumnSpan="1" Source="{Binding Path=AppIcon}"/>
AppIcon is the Image object that i have defined in the class and this changes as per user. For e.f: if I select notepad, then the notepad's icon will be stored in this AppIcon object. However my main problem is that the icon is not getting displayed in the 'Image' object.
How do I overcome this issue?
Thanks in advance for your time and help.
Sunil
|
|
|
|
|
Source does not accept Icon and Bitmap object, you have to convert it into BitmapImage.
The code below is a converter to convert Bitmap to BitmapImage, the code below can convert Bitmap to propert BitmapImage.
[System.Runtime.InteropServices.DllImport("gdi32.dll")]
public static extern bool DeleteObject(IntPtr hObject);
public static BitmapSource loadBitmap(Bitmap source)
{
try
{
IntPtr hBitmap = source.GetHbitmap();
try
{
return Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
}
finally
{
DeleteObject(hBitmap);
}
}
catch
{
return new BitmapImage();
}
}
Regards
Joseph Leung
|
|
|
|
|
Thanks Joseph.
Well this is what I have implemented. Can you tell me whether this code will also lead to memory leaks.
Icon icon = Icon.ExtractAssociatedIcon(appPath);
if (null != icon)
{
BitmapImage bi = new BitmapImage();
MemoryStream stream = new MemoryStream();
Bitmap bmp = icon.ToBitmap();
bi.BeginInit();
bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
stream.Seek(0, SeekOrigin.Begin);
bi.StreamSource = stream;
bi.EndInit();
MyObject app = new MyObject();
app.AppIcon = bi;
}
Sunil
|
|
|
|
|
Greetings, I am not sure about Icon, but I used your code and loaded a png without problem.
BitmapImage bi = new BitmapImage();
MemoryStream stream = new MemoryStream();
Bitmap bmp = new Bitmap(@"C:\Temp\Test.png");
bi.BeginInit();
bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
stream.Seek(0, SeekOrigin.Begin);
bi.StreamSource = stream;
bi.EndInit();
AppIcon = bi;
Check if it's the problem for loading Icon (try load a bmp or png).
I suggest the loading code should be placed in MyObject, your BitmapImage may be created by different thread as MyObject.
Regards
Joseph Leung
|
|
|
|