|
Yes actually, sort of, the values in the combobox stems from the Description of the Enum's and not the enum itself. I actually want to know how do you tell the property in the class, that the selection in hte combobox has change, so you should now update the property.
|
|
|
|
|
I got it working but I had to do thius:
Private Sub cmbEnumComboBox_SelectionChanged(sender As System.Object, e As System.Windows.Controls.SelectionChangedEventArgs) Handles cmbEnumComboBox.SelectionChanged
t.Enumer = cmbEnumComboBox.EnumItemsSorce
End Sub
Now I know that is stupid, how could I do this without this, any ideas?
|
|
|
|
|
I found a solution, so now I can bind an Enum property to a custom combobox without any clutter in Code behind or XAML:
Imports System.ComponentModel
Namespace WPF
Public Class COmboBoxAttached
Inherits ComboBox
Private _EnumList As New List(Of EnumerationMember)
Private DontRebind As Boolean = False
Private pEnumItemsSorce As [Enum]
Public Property EnumItemsSorce() As [Enum]
Get
Return pEnumItemsSorce
End Get
Set(value As [Enum])
If Not DontRebind Then
GetValues(value)
Me.ItemsSource = _EnumList
Me.DisplayMemberPath = "Description"
Me.SelectedValue = "Value"
End If
DontRebind = False
pEnumItemsSorce = value
End Set
End Property
Protected Overrides Sub OnSelectionChanged(e As System.Windows.Controls.SelectionChangedEventArgs)
If Me.SelectedValue IsNot Nothing Then
DontRebind = True
EnumItemsSorce = DirectCast(Me.SelectedValue, EnumerationMember).Value
End If
MyBase.OnSelectionChanged(e)
End Sub
Private _enumType As Type
Private Sub GetValues(ByVal E As [Enum])
Dim result As New List(Of String)
Dim _enumType As Type
_enumType = E.GetType
Dim enumValues = [Enum].GetValues(_enumType)
Dim f = (From enumValue In enumValues Select New EnumerationMember() With { _
.Value = enumValue, _
.Description = DirectCast(enumValue, [Enum]).GetDescription _
}).ToList
_EnumList = f
End Sub
Private Function GetDescription(enumValue As Object) As String
Dim descriptionAttribute = TryCast(_enumType.GetField(enumValue.ToString()).GetCustomAttributes(GetType(ComponentModel.DescriptionAttribute), False).FirstOrDefault(), ComponentModel.DescriptionAttribute)
Return If(descriptionAttribute IsNot Nothing, descriptionAttribute.Description, enumValue.ToString())
End Function
Public Class EnumerationMember
Public Property Description() As String
Get
Return m_Description
End Get
Set(value As String)
m_Description = value
End Set
End Property
Private m_Description As String
Public Property Value() As Object
Get
Return m_Value
End Get
Set(value As Object)
m_Value = value
End Set
End Property
Private m_Value As Object
End Class
End Class
End Namespace
|
|
|
|
|
Hello,
I have a Window and a viewModel class as a data context of the window.
When i try to change some variables in the viewModel class that are binded to Window properties.
I get the next exception:
"Cannot use a DependencyObject that belongs to a different thread than its parent Freezable".
I know that in WPF you dont have access to a UI elements properties from other threads but here i dont directly access the UI element properties i access some variables that are binded to them.
how can i solve this?
|
|
|
|
|
Make sure you are accessing the UI / properties on the right thread.
|
|
|
|
|
Hi Everybody,
Good Day.
Am gonna develop an windows based application in WPF like holding employee profile. It will save the data and also it will have employee image and his/hers parents image. i am using backedn server as SQL and the SQL server is centralized and i will be accessing through internet.
Now i want suggestion that where should i save my images? is it ok to save in image data type of DB server?
or do i need to use any common folder file systems? if as this is an windows application do i need to give any persmissions? so that it will be accessible from windows app?
or is it possible to use google picasa or anything like that? and will it have any licencing issue if i market the application?
please suggest me the best way to save the images from windows application?
thanks in advance.
|
|
|
|
|
If you are using Silverlight, you will not be able to access the file system folder without elevated permissions.
Thus it will be easier for you to store images on the DB server using a web service.
|
|
|
|
|
Dear Abinav,
Thanks for your reply
When you say to store images in database and use web service?
will image will transfer fast in web service? and how to send image via webservice?
or will it work through ADO.NET via internet?
which will be faster?
thanks in advance/
|
|
|
|
|
Store everything in the DB. Do you really want a file share open to the internet?
|
|
|
|
|
Dear Hammer,
THanks for your response. I have some questions on this which i have posted in the above reply.
thanks
|
|
|
|
|
I store the images on a folder on the server and deliver them via the WCF service. There are pros and cons to storing the file in a database, the may be no automatic backup of the file system but you data backup is not bloated by the images.
It would never even occur to be to store images on public server/service like Picassa, too many privacy issues and the images are no longer yours. It also builds in a dependency on yet another 3rd party.
Having a publicly shared folder on the interweb is just crazy!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Hello,
I have a window and a user control in side of the window.
I want to set the same ViewModel class as a data context for both,the window and the user control.
how can i do it?
Thanks
|
|
|
|
|
Data contexts are inherited. the data context for a control is automatically passed into all it's children unless it declares a different one for it's own.
So the data context for the window is automatically inherited by your UserControl.
PS: I assume your UserControl is a child of the window
|
|
|
|
|
|
Hi all,
I am newbie to WPF,need your guidance on richtextbox control.My application updating huge texts in richtextbox control,but the text gets overlap
here is my XAML code
<RichTextBox Height="476" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto" HorizontalAlignment="Left" Margin="8,36,0,0" Name="dutRtx" VerticalAlignment="Top" Width="Auto" IsReadOnly="True" FontSize="11" FontFamily="Segoe UI" Cursor="Arrow">
<RichTextBox.Resources>
<Style TargetType="{x:Type Paragraph}">
<Setter Property="Margin" Value="4pt"/>
<Setter Property="LineHeight" Value="6.3pt"/>
<Setter Property="FontSize" Value="9pt" />
<Setter Property="LineStackingStrategy" Value="BlockLineHeight" />
</Style>
</RichTextBox.Resources>
<FlowDocument>
<Paragraph FontSize="9pt" LineHeight="4pt" LineStackingStrategy="BlockLineHeight"></Paragraph>
<Paragraph>
</Paragraph>
</FlowDocument>
</RichTextBox>
Increasing the line height the line spacing will be higher.to tackle both line spacing and height...
provide your suggestions....
|
|
|
|
|
So I have spent the last hour or so ratting through Google results to see if there is any news on the future of Silverlight front. This is driven by my decision, 3+ years ago, to move our platform from winforms and click once deployment to Silverlight and a browser based interface.
The newly minted policy that the client could not connect directly to the server dictated WCF. We have been happily grinding out Silverlight apps for the last few years, we are VERY successful as supplying the business solutions.
It is now 2+ years since MS announced the death of SL and I'm pondering our next platform move. I have a wide choice of MS tech, I can go back to winforms, move to WPF and junk the browser altogether, this is sooo tempting.
The thought of going back to html and scripting just curls my toes, JSOPs declaration did not help. To add to the mix we are now getting a small but significant requirement for mobile apps, iOS and Andriod only, windows has no penetration on the mobile platform.
I seriously do not want to take a highly successful dev team down another blind route - again. I am so pissed with MS. But I can't identify an MS unified platform for LOB development and I don't want to take them away from their core skills, what a waste. For the moment we are staying with SL but I need to address mobile development as well.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
SL is dead for browser apps. Never really took off. HTML5 is the future there. WPF is the way to go for desktop apps, but desktop apps are a dying breed except for certain applications. You should have known 3+ yrs ago not to use SL. Writing was on the wall back then... was a proprietary thing from MSFT that only worked in very limited situations at the time.
|
|
|
|
|
You obviously read the wall better than I do, 3 years ago SL was still one of the only viable alternatives to aspx, proprietary or not I was willing to take on an MS platform. I know after 20+ year you would think I would have known better but I waited till SL was well entrenched in the development environment before I changed.
While HTML5 may be cross platform it seems to be an amorphous collection of bits and pieces that includes javascript, which I rate marginally higher than the defunct vb script. I don't want to go to something like Kendo or some other 3rd party framework and have to reskill an entire team on UI development using a minor exposure tool!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
My advice (which is probably worthless, but I'm giving it nonetheless).
JavaScript is a difficult language to learn well and to use well.
It is also a language that anyone can have a play with - and so there is a lot of crap javascript out there.
jQuery helps some - but again there is a big learning curve.
There are also other libraries (KnockoutJS being one I like) which can help.
It sounds like you are being proactive and so have some time before real development takes place.
I would task a dev or two to get into javascript / jQuery / Knockout and produce some exemplar apps - and document them to destruction.
Make sure they have done real-world things with the examples - you have existing code bases on which you can base these, so plop up a web service and re-engineer some of the stuff you have in Js/HTML5
With the luxury of time, you should end up with something you can all comfortably use without going down the 'quick - need to do it NOW even though I don't know it - oh! wait! this works, I'll leave it in the code for now!!' route.
Re-skilling is inevitable, really - so do it over time and do it well.
MVVM # - I did it My Way
___________________________________________
Man, you're a god. - walterhevedeich 26/05/2011
.\\axxx
(That's an 'M')
|
|
|
|
|
Actually all of us have some exposure to javascript although for some it is a decade old .
I have no urgent need to move off the SL platform and we already have a couple of guys doing HTML5 work on the mobile front so I'm comfortable with where we are and the near future. We will end up going down the path of HTML5 by default but I just wish there was a solid frame work or set of tools I could identify.
I am severely tempted to go back to the desktop and clickonce as we are starting to integrate external apps and SL is too limited in this area.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Hello,
How do I please control (start, stop, pause, go to specific time) a controltemplate storyboard inside a custom control..by code?
The XAML:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="Window6"
Title="MainWindow" Height="394" Width="324">
<Window.Resources>
<Style x:Key="Arrow" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}" x:Name="CTarrow">
<ControlTemplate.Resources>
<Storyboard x:Key="Storyboard1" RepeatBehavior="Forever" AutoReverse="True">
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="rectangle">
<DiscreteColorKeyFrame KeyTime="0" Value="#FF0080FF"/>
<DiscreteColorKeyFrame KeyTime="0:0:0.5" Value="#FF004D99"/>
<DiscreteColorKeyFrame KeyTime="0:0:0.8" Value="#FF0080FF"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</ControlTemplate.Resources>
<Grid>
<ContentPresenter RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" HorizontalAlignment="Center" VerticalAlignment="Center" />
<Rectangle x:Name="rectangle" Height="30" Width="50" Fill="Black" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Button HorizontalAlignment="Left" VerticalAlignment="Top" Style="{DynamicResource Arrow}" x:Name="Arrow" />
</Grid>
</Window>
In these 3 attemps, the debugger complains about not being able to resolve 'rectangle':
Dim myStoryboard As New Storyboard
myStoryboard = Arrow.FindResource("Storyboard1")
myStoryboard.Begin()
Dim myStoryboard As New Storyboard
myStoryboard = CType(Me.Resources("Storyboard1"), Storyboard)
myStoryboard.Begin(Arrow)
Dim myStoryboard As Storyboard = TryCast(Arrow.Template.Resources("Storyboard1"), Storyboard)
If myStoryboard IsNot Nothing Then
myStoryboard.Begin(Arrow)
End If
With this one, I can verify that neither the template is not found:
Dim ct As ControlTemplate = TryCast(Me.FindName("CTarrow"), ControlTemplate)
If ct IsNot Nothing Then
Debug.Print("ControlTemplate found")
Dim sb As Storyboard = TryCast(ct.Resources("Storyboard1"), Storyboard)
If sb IsNot Nothing Then
sb.Begin()
Debug.Print("Storyboard found")
End If
End If
Please help!!
modified 24-May-13 12:22pm.
|
|
|
|
|
Hello forum,
(sorry if duplicate, I might have post this but cannot find it)
Just created a SL Busines application. In the MYDomainService.cs the default queries are generated.
public IQueryable<dbtable> GetDBTablesCompare()
{
return this.ObjectContext.DBTables;
}
The default returns all columns in the specified table.
I would like to run a script like this:
SELECT * From DBTables A
FULL OUTER JOIN Information_Schema.Columns B ON A.Column_Name = B.Column_Name
AND B.Table_Name = 'FY2007_DATA'
AND B.Table_Schema = 'dbo'
WHERE
A.Table_Schema = 'dbo'
AND A.Table_Name = 'FY2006_DATA'
AND (A.Column_Name IS NULL OR B.Column_Name IS NULL)
Any help will be greatly appreciated
|
|
|
|
|
I have large amounts of text I'd like to format like Rich Text, except I'd like to be able to include Links, DropDowns, buttons, ect, int the text.
What's the right way to handle this in a WPF window? I'm thinking maybe some kind of wrap panel.
If it's not broken, fix it until it is
|
|
|
|
|
|
That's exactly what I wanted.
Thank you
If it's not broken, fix it until it is
|
|
|
|