Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
GoodCleanFun
Jan 28, 2004

crashdome posted:

General WPF/MVVM question!

I use a combination of an attached behavior, base class, and dialog service to handle this in a very straightforward way. My base class implements INotifyPropertyChanged as well as providing access to the dialog service, dialog result, and okay and close commands.

The dialog service uses Activate.CreateInstace(typeof(T)) to spawn the window based on method signature: bool? ShowDialog<T>(viewModelBase viewModel). After that it's just setting the dataContext to the viewModel and returning ShowDialog(). Use:
var result = DialogService.ShowDialog<MyWindow>(viewModel); No reference to System.Windows necessary.

The commands get bound to the views buttons and a nifty DialogCloser (http://blog.excastle.com/2010/07/25/mvvm-and-dialogresult-with-no-code-behind/) allows me to close the window effortlessly.

Adbot
ADBOT LOVES YOU

UberJumper
May 20, 2007
woop

wwb posted:

Greenfield is a lot better than undocumented brownfield so you've got that -- I would requisition a new server ( check out TeamCity if you have a budget ) and and get going there. Do you have an issue tracker? That is probably the 2nd most important thing after source control . . ..

I just finished moving almost everything to team city, we were already using Jira. I convinced everyone to start writing their own unit-tests (which apparently some of them were already doing).

Anyways the bad:

Automated integration tests are a mess/non-existant. Some coop student a year ago bravely wrote a ton of integration tests using capybara for the various UI stuff (app uses ASP web interface). With the goal of letting us automate, except he wrote like a grand total of 10 tests and they are so disgustingly monolithic and full of awful awful spaghetti code. He was also the only one who knew ruby.

So for the last year the previous test developer was apparently testing everything manually. Even then people spent 5-6 days just going through a full end to end integration test. Our SOAP and REST API that two clients currently use in their products have never really had an integration test and are constantly falling apart.

Test plans for the majority of projects do not seem to exist, or what we have on file is so stupidly old and outdated they are useless. I am supposed to write test plans for all of our products quickly.

Half the team seems to be using VS 2013, and the other half of the team seems to be using VS 2010.

This week has been a constant battle of automated builds failing, installers failing to be built properly only to find out after someone hands off an installer that it doesn't even loving work.

But the biggest issue that i simply do not know how to get an integration test environment working correctly. I want something that can be wiped and rebuilt before certain tests. Unfortunately due to our products reliance on requiring a disgusting amount of data (1-2 TB/Day) for any sort of proper testing it makes this seem really impossible.

:negative:

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

UberJumper posted:

But the biggest issue that i simply do not know how to get an integration test environment working correctly. I want something that can be wiped and rebuilt before certain tests. Unfortunately due to our products reliance on requiring a disgusting amount of data (1-2 TB/Day) for any sort of proper testing it makes this seem really impossible.

Ideally the core logic is being unit tested and integration tests exist just to make sure that these systems can talk to one another. Example: I wrote an IRC library a while back. I unit tested all of the core connectivity and message creation/sending/parsing logic (hundreds of tests). Then I wrote 5-10 integration tests to confirm that the library could actually connect to a real IRC server and do some simple IRC operations. The integration tests just validate that I didn't code an implementation of the IRC RFCs that appeared to work when tested in isolation, but had fatal flaws that would prevent it from working when given a real IRC server to talk to.

Also, a "test developer" (i.e. SDET) probably shouldn't be writing test plans. Test plans are in the realm of QA, for manual/automated UI testing.

It's really important to understand the distinction between unit and integration tests. A lot of developers don't. Make sure the folks writing tests do.

New Yorp New Yorp fucked around with this message at 04:24 on Mar 14, 2015

Mr Shiny Pants
Nov 12, 2012
Sometimes you wonder what goes on in Redmond.

After switching my app to a storeapp because of a horribly broken touch experience in WPF. (No virtual keyboard on TextBox? Come on.)

The ListView in WinRT does not support: IsSynchronizedWithCurrentItem

This is so loving useful, how could they not support it. :(

Bognar
Aug 4, 2011

I am the queen of France
Hot Rope Guy
I got tired of MVC's string parameters for links in views, so I made an HtmlHelper that uses expressions.

NuGet: https://www.nuget.org/packages/System.Web.Mvc.ExpressionLinks/0.1.1
Github: https://github.com/ckimes89/Mvc-ExpressionLinks

It's super alpha, so it just supports one overload of ActionLink right now, but I plan to add overloads for Url.Action, RedirectToAction, etc. To install it, use install-package System.Web.Mvc.ExpressionLinks.

Here's what you can do with it. Given a controller method that looks like:

C# code:
public class HomeController : Controller
{
     public ActionResult MyMethod(int id, string search)
    {
        return View("Index");
    }
}
You might normally use something like this to make a link in Razor:

C# code:
@Html.ActionLink("My Link", "MyMethod", "Home", new { id = 1, search = "butts" }, null) // have to use null htmlAttributes here because of weird ActionLink overloads
But that sucks. The controller and action names are just strings, so unless your refactoring tool is MVC-string aware you can easily screw things up. The same goes for the parameters since they're just an anonymous object, so changing a parameter name in the action method signature will break things silently.

But instead, using my library:

C# code:
@(Html.ActionLink<HomeController>("My Link", c => c.MyMethod(1, "butts")))
Now, refactoring tools will automatically pick up the usage of MyMethod, renaming parameters in the method signature doesn't cause you headaches, and you don't have to pass in null to the weird ActionLink overload when specifying a controller.

What do you guys think? Would anyone else use this?

Bognar fucked around with this message at 21:51 on Mar 14, 2015

epswing
Nov 4, 2003

Soiled Meat

Bognar posted:

What do you guys think? Would anyone else use this?

drat, that's hot. :allears:

aBagorn
Aug 26, 2004

epalm posted:

drat, that's hot. :allears:

Seriously, that's sexy stuff.

I'm going to build a couple of proof of concepts with this to show my co workers.

ninjeff
Jan 19, 2004

Looks like Hyprlinkr for MVC (which is good). Nice!

mortarr
Apr 28, 2005

frozen meat at high speed

Bognar posted:


...

C# code:
@(Html.ActionLink<HomeController>("My Link", c => c.MyMethod(1, "butts")))
Now, refactoring tools will automatically pick up the usage of MyMethod, renaming parameters in the method signature doesn't cause you headaches, and you don't have to pass in null to the weird ActionLink overload when specifying a controller.


I like everything about this, going to file it away for my next mvc project.

Dr. Poz
Sep 8, 2003

Dr. Poz just diagnosed you with a serious case of being a pussy. Now get back out there and hit them till you can't remember your kid's name.

Pillbug

Bognar posted:

What do you guys think? Would anyone else use this?

Agreeing with everyone else. Hot. What's nice about it is it solves one of those "tiny cuts" that we all just deal with. It's the kind of quality-of-life improvement it would be nice to see more of in the core framework.

wwb
Aug 17, 2004

Bognar posted:

I got tired of MVC's string parameters for links in views, so I made an HtmlHelper that uses expressions.

NuGet: https://www.nuget.org/packages/System.Web.Mvc.ExpressionLinks/0.1.1
Github: https://github.com/ckimes89/Mvc-ExpressionLinks

It's super alpha, so it just supports one overload of ActionLink right now, but I plan to add overloads for Url.Action, RedirectToAction, etc. To install it, use install-package System.Web.Mvc.ExpressionLinks.

Here's what you can do with it. Given a controller method that looks like:

C# code:
public class HomeController : Controller
{
     public ActionResult MyMethod(int id, string search)
    {
        return View("Index");
    }
}
You might normally use something like this to make a link in Razor:

C# code:
@Html.ActionLink("My Link", "MyMethod", "Home", new { id = 1, search = "butts" }, null) // have to use null htmlAttributes here because of weird ActionLink overloads
But that sucks. The controller and action names are just strings, so unless your refactoring tool is MVC-string aware you can easily screw things up. The same goes for the parameters since they're just an anonymous object, so changing a parameter name in the action method signature will break things silently.

But instead, using my library:

C# code:
@(Html.ActionLink<HomeController>("My Link", c => c.MyMethod(1, "butts")))
Now, refactoring tools will automatically pick up the usage of MyMethod, renaming parameters in the method signature doesn't cause you headaches, and you don't have to pass in null to the weird ActionLink overload when specifying a controller.

What do you guys think? Would anyone else use this?

I'm not trying to rain on your parade -- this is awesome stuff -- but IIRC the MvcContrib and their FluentHtml bits had this stuff integrated back in the MVC1 days. Now, I'm not sure if that library kept up with MVC because most of what it did got subsumed into the framework. Except for this sort of strongly typed stuff.

FWIW one of the issues with this was it was very expensive at scale but this probably matters less in the modern world of javascript rendered pages.

Dr. Poz
Sep 8, 2003

Dr. Poz just diagnosed you with a serious case of being a pussy. Now get back out there and hit them till you can't remember your kid's name.

Pillbug

wwb posted:

I'm not trying to rain on your parade -- this is awesome stuff -- but IIRC the MvcContrib and their FluentHtml bits had this stuff integrated back in the MVC1 days. Now, I'm not sure if that library kept up with MVC because most of what it did got subsumed into the framework. Except for this sort of strongly typed stuff.

FWIW one of the issues with this was it was very expensive at scale but this probably matters less in the modern world of javascript rendered pages.

If I remember right, MvcContrib supported something like this through use of T4MVC which was great in concept but incredibly clunky when you tried to use it in your workflow.

wwb
Aug 17, 2004

That might have been the case in some later versions of scaffolding. FluentHtml definitely had this as a dynamic, reflective implementation early on until it moved into the Mvc Futures project and died, we were using it before T4 was released . . .

Bognar
Aug 4, 2011

I am the queen of France
Hot Rope Guy

wwb posted:

I'm not trying to rain on your parade -- this is awesome stuff -- but IIRC the MvcContrib and their FluentHtml bits had this stuff integrated back in the MVC1 days. Now, I'm not sure if that library kept up with MVC because most of what it did got subsumed into the framework. Except for this sort of strongly typed stuff.

FWIW one of the issues with this was it was very expensive at scale but this probably matters less in the modern world of javascript rendered pages.

I found a bunch of libraries that do something like this for getting the action names, but in my limited search I didn't see anything that extracted the parameter names/values from the expression. It really wasn't much code to implement this, so I would be more surprised if something didn't already exist doing the same thing than if it did.

Regarding performance, I have some ideas about caching the results after parsing the expression. I'd have to profile it, but my guess is the dynamic compilation of LambdaExpressions is the most expensive part and I'm pretty sure that can be done once per expression. I'd have to play with it to know for sure.

I'm glad to hear all the positive responses - I really didn't expect that much. I'll put some effort in to support the rest of the ActionLink overloads, UrlHelper, etc. so that it's more than just a proof of concept.

EDIT: Alright, I added support for Html.Action, Html.RenderAction, and Url.Action. That should be enough to start being useful with it in views. Other things to do would be Html.BeginForm, RedirectToAction in controllers, and whatever else you guys can think of.

Bognar fucked around with this message at 00:46 on Mar 17, 2015

Gul Banana
Nov 28, 2003

anyone know a way to build a nuget package with a stable version which can use, as a dependency, something with a prerelease version?

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Gul Banana posted:

anyone know a way to build a nuget package with a stable version which can use, as a dependency, something with a prerelease version?

Whether you can or not, that seems like a really bad idea for the obvious reasons.

Calidus
Oct 31, 2011

Stand back I'm going to try science!
I have a MVC webpage which is used to add items to an order. Think of it like a stupid version of those design your own car webpages every manufacture has now. It has 3 sections, the first section is html form with some inputs used to select and add an single item to the order. The second section is a preview image rendered by the server based on uses current order. The third section is a second html form which is used to remove a previously added part from the order. This is clunky as hell with two different html forms being posted.

I am thinking I have a few ways I think I could make this better:

  • I could change the page to use MVCs Ajax partial postbacks and just refresh the sections that need refreshed
  • I could also try and use a single form with multiple submit buttons
  • I also use Json results, JS and Ajax to update each individual parts of my model and my complex session variable.

wwb
Aug 17, 2004

Bognar posted:

I found a bunch of libraries that do something like this for getting the action names, but in my limited search I didn't see anything that extracted the parameter names/values from the expression. It really wasn't much code to implement this, so I would be more surprised if something didn't already exist doing the same thing than if it did.

I think it was in the MVC Futures then got pulled out but someone definitely did the same sort of lambada thing -- see http://eduncan911.com/blog/archives/type-safety-with-asp-net-mvc-futures.html for an example. Note the date.

Thanks for bringing this back to life. Strings are dirty.

Gul Banana
Nov 28, 2003

Ithaqua posted:

Whether you can or not, that seems like a really bad idea for the obvious reasons.

Turns out the way to do it to use explicit dependencies in your nuspec - rather than relying on nuget pack to include the dependencies you've got in packages.config. You then configure their version as half-open intervals, like this:
Version="(1.0.0,2.0.0]"
That'll match, say, 2.0.0-rc1 as well as 2.0.0, and it doesn't prevent you from giving your own package a stable version.

Mr Shiny Pants
Nov 12, 2012
WinRT is pretty nice, got my webcam working and it pops up the virtual keyboard when I tap into a textbox. Yay for small victories.

Anyone else use RT?

enthe0s
Oct 24, 2010

In another few hours, the sun will rise!
C# code:
<asp:TextBox ID="tbStartDate" runat="server" Width="100" />
	<asp:Panel ID="pStartDate" runat="server" CssClass="PopupControl">
	<asp:Calendar ID="cStartDate" runat="server" Width="160px" OnSelectionChanged="cStartDate_SelectionChanged" SkinID="Common_SmallCalendar" />
</asp:Panel>
<cc1:PopupControlExtender ID="pceStartDate" runat="server" TargetControlID="tbStartDate" PopupControlID="pStartDate" Position="Bottom" />
So I have this textbox that displays whatever date is chosen in this calendar control, and now I'm trying to clear whatever text is shown after a postback.

I've tried

code:
tbStartDate.Text = "";
cStartDate.SelectedDates.Clear();
tbStartDate.Value = (there's actually no Value attribute so I can't modify this)
And none of these things work. I've also across https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.calendar.visibledate(v=vs.110).aspx but as far as I know I can't set a DateTime object to be empty, so I'm a loss.

How can I clear the values from this textbox?

EssOEss
Oct 23, 2006
128-bit approved
You can definitely clear a textbox by setting its .Text to empty. Are you doing it in a sane place? Is there really a postback and is it a full postback updating the whole page, not just some irrelevant part? Are you using any fancy AJAX partial update panels? Oh, it uses PopupControlExtender, so I assume there is some AJAX funny business going on. No idea about how this particular control works, so perhaps there are some nonobvious interactions.

EssOEss fucked around with this message at 22:23 on Mar 17, 2015

enthe0s
Oct 24, 2010

In another few hours, the sun will rise!

EssOEss posted:

You can definitely clear a textbox by setting its .Text to empty. Are you doing it in a sane place? Is there really a postback and is it a full postback updating the whole page, not just some irrelevant part? Are you using any fancy AJAX partial update panels? Oh, it uses PopupControlExtender, so I assume there is some AJAX funny business going on. No idea about how this particular control works, so perhaps there are some nonobvious interactions.

I just figured it out. I had to call UpdatePanel.update(). I was setting the values but there was no actual event triggered to cause the UpdatePanel to refresh.

Inverness
Feb 4, 2009

Fully configurable personal assistant.

Mr Shiny Pants posted:

WinRT is pretty nice, got my webcam working and it pops up the virtual keyboard when I tap into a textbox. Yay for small victories.

Anyone else use RT?
I can't tell if you mean the API or the OS that is dead.

Mr Shiny Pants
Nov 12, 2012

Inverness posted:

I can't tell if you mean the API or the OS that is dead.

The API, Which OS? Did I miss anything?

Edit: The tablet ARM Version, nah just the API.

Have not dared use the WinJS stuff, but the XAML C# version is pretty nice.

Mr Shiny Pants fucked around with this message at 07:57 on Mar 18, 2015

crashdome
Jun 28, 2011
Ok, so I have one of those trivial things that WPF is being stupid about.

I was thinking about creating a base window class and google quickly squashed that idea. So now, I want to take a simple closing event trigger and apply it across all windows (not user controls) because I have an inherited closing command in my viewmodelbase to handle some cleanup. Copy pasting the xaml is ridiculously tedious and if I forget it in one window, I don't get proper clean up of resources. :emo:

Bognar
Aug 4, 2011

I am the queen of France
Hot Rope Guy

crashdome posted:

I was thinking about creating a base window class and google quickly squashed that idea.

Maybe I'm missing something, but what's wrong with making a base window class?

gariig
Dec 31, 2004
Beaten into submission by my fiance
Pillbug

Calidus posted:

I have a MVC webpage which is used to add items to an order. Think of it like a stupid version of those design your own car webpages every manufacture has now. It has 3 sections, the first section is html form with some inputs used to select and add an single item to the order. The second section is a preview image rendered by the server based on uses current order. The third section is a second html form which is used to remove a previously added part from the order. This is clunky as hell with two different html forms being posted.

I am thinking I have a few ways I think I could make this better:

  • I could change the page to use MVCs Ajax partial postbacks and just refresh the sections that need refreshed
  • I could also try and use a single form with multiple submit buttons
  • I also use Json results, JS and Ajax to update each individual parts of my model and my complex session variable.

No one really answered you but I would go with a SPA (Single Page App) approach. I think that's the kind of UI that users are expecting today. Post backs work best as a work flow (view -> edit -> view update) but this sounds like a very iterative approach on this page. If you are able I would go with a more traditional SPA approach of using DOM manipulation on the front end and sending JSON to the server. The Ajax partial stuff doesn't seem to be in vogue at Microsoft so could be dropped in a version or two (pure speculation).

crashdome
Jun 28, 2011

Bognar posted:

Maybe I'm missing something, but what's wrong with making a base window class?

From what I gathered, you cannot inherit XAML. At least I have yet to find an example of it.

Adhemar
Jan 21, 2004

Kellner, da ist ein scheussliches Biest in meiner Suppe.

crashdome posted:

From what I gathered, you cannot inherit XAML. At least I have yet to find an example of it.

You can definitely go in the code behind and specify a base class there.

Bognar
Aug 4, 2011

I am the queen of France
Hot Rope Guy

crashdome posted:

From what I gathered, you cannot inherit XAML. At least I have yet to find an example of it.

First result Googling "base window class wpf":

http://weblogs.asp.net/psheriff/creating-a-base-window-class-in-wpf

EDIT: I guess I should point out that XAML is a descriptor language that ties back directly to classes and properties in .NET. The inheritance doesn't happen in XAML, it happens in C# (or whatever language), you just have to change your XAML to point to your new inherited class.

Bognar fucked around with this message at 01:04 on Mar 19, 2015

Sedro
Dec 31, 2008
Yeah, the generated "MainWindow" in a default WPF project inherits from Window, so I wouldn't call that bad practice.

crashdome
Jun 28, 2011

Adhemar posted:

You can definitely go in the code behind and specify a base class there.

Bognar posted:

First result Googling "base window class wpf":

http://weblogs.asp.net/psheriff/creating-a-base-window-class-in-wpf

EDIT: I guess I should point out that XAML is a descriptor language that ties back directly to classes and properties in .NET. The inheritance doesn't happen in XAML, it happens in C# (or whatever language), you just have to change your XAML to point to your new inherited class.


Sedro posted:

Yeah, the generated "MainWindow" in a default WPF project inherits from Window, so I wouldn't call that bad practice.

I don't mean to be a jerk but, you didn't read my post fully or you actually didn't try it. What I proposed needed to be done, cannot be done.

quote:

Currently deriving a XAML generated class from another XAML generated class is not supported.

https://support.microsoft.com/en-us/kb/957231

E: What I need is this:
code:
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Closing">
            <i:InvokeCommandAction Command="{Binding Path=CloseCommand, Source={StaticResource ViewModel}}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
in all of my Window (not User Control) xaml files.

fake edit: I suppose if someone has a method by which I can create a base class (no xaml) to get that Event trigger wired up to my VMs CloseCommand in C# then I can certainly use base class.

edit numero dos:
I suppose it would be even more awesome to get other XAML I constantly copy/paste into the base class also such as the namespaces, Windows.Resource, etc... It just seems super repetitive to create Views where the first 40-50 lines of XAML are ultimately 99.9% the same.

crashdome fucked around with this message at 03:22 on Mar 19, 2015

raminasi
Jan 25, 2005

a last drink with no ice

crashdome posted:

I don't mean to be a jerk but, you didn't read my post fully or you actually didn't try it. What I proposed needed to be done, cannot be done.


https://support.microsoft.com/en-us/kb/957231

Why do you specifically need to do things that way?

crashdome
Jun 28, 2011
^^ See my edit.

TheEffect
Aug 12, 2013
I'm trying to rewrite a program that I wrote in PowerShell that copies files and folders over a network to a selected list of PCs. I've come across a snag though...

I'm using "directoryBrowse.ShowDialog()" for users to select a directory... but it obviously doesn't let them select individual files. Is there anything I can use that will allow my users to select either a file OR a folder to copy?

raminasi
Jan 25, 2005

a last drink with no ice

crashdome posted:

fake edit: I suppose if someone has a method by which I can create a base class (no xaml) to get that Event trigger wired up to my VMs CloseCommand in C# then I can certainly use base class.

I don't actually have a compiler in front of me so I'm typing this from scratch, and it should probably have some error checking, but I think it will work:

C# code:
class DerivedWindow : Window
{
    public DerivedWindow()
    {
        this.OnClosing += (s, e) =>
        {
                dynamic vm = this.DataContext;
                var closeCommand = (ICommand)vm.CloseCommand;
                closeCommand.Invoke();
        }
    }
}
WPF databinding is fundamentally a runtime operation - trying to set it up at compile time is going to result in some hack or another. (There might be some way to do it with F#'s statically resolved type parameters, if you're into that.)

e: I assumed that you don't specifically need a trigger for some other reason.

crashdome
Jun 28, 2011

TheEffect posted:

I'm trying to rewrite a program that I wrote in PowerShell that copies files and folders over a network to a selected list of PCs. I've come across a snag though...

I'm using "directoryBrowse.ShowDialog()" for users to select a directory... but it obviously doesn't let them select individual files. Is there anything I can use that will allow my users to select either a file OR a folder to copy?

Oh man, I remembered this from way back and I had to google a little but, I think I found the solution. I simply remembered that it was configurable options of the OpenFileDialog control and this person seems to have documented them:
http://www.codeproject.com/Articles/44914/Select-file-or-folder-from-the-same-dialog

Apologies if it doesn't work the way you intended.

crashdome
Jun 28, 2011

GrumpyDoctor posted:

I don't actually have a compiler in front of me so I'm typing this from scratch, and it should probably have some error checking, but I think it will work:

C# code:
class DerivedWindow : Window
{
    public DerivedWindow()
    {
        this.OnClosing += (s, e) =>
        {
                dynamic vm = this.DataContext;
                var closeCommand = (ICommand)vm.CloseCommand;
                closeCommand.Invoke();
        }
    }
}
WPF databinding is fundamentally a runtime operation - trying to set it up at compile time is going to result in some hack or another. (There might be some way to do it with F#'s statically resolved type parameters, if you're into that.)

e: I assumed that you don't specifically need a trigger for some other reason.

That will probably work! So I guess I am accomplishing my original goal. I remembered reading that during design time, it wont run specifics of the base class such as the constructor (or something like that) - since it's events only I don't need Design time compatibility. So thank you for your determination.

I still say it's a pretty big drawback we cannot inherit actual XAML. WinForms this was incredibly easy to do and flexible. I might just create my own VS template and hope I never have to go back and edit all my views because I changed the name of something or a namespace (No, I do not have ReSharper - cant afford it :( )

Adbot
ADBOT LOVES YOU

TheEffect
Aug 12, 2013

crashdome posted:

Oh man, I remembered this from way back and I had to google a little but, I think I found the solution. I simply remembered that it was configurable options of the OpenFileDialog control and this person seems to have documented them:
http://www.codeproject.com/Articles/44914/Select-file-or-folder-from-the-same-dialog

Apologies if it doesn't work the way you intended.

You're my savior man. Thanks!

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply