Visual Studio Lightswitch is a Microsoft tool,
which is used for to build business applications. If you want to browse a
file in your LightSwitch application then follow these steps.
Step by step solution
Step 1 : Open Visual Studio
LightSwitch->Create new table (like as FileInformation).
Step 2 : Right click on screens->Add
screens.
Step 3 : Select editable grid
screen->Select screen data (FileInformation)->Ok.
Step 4 : Now click on add in screen
commandbar->Select new button.
Step 5 : Write method name
(ImportFile)->Ok.
Step 6 : Right click on ImportAFile
button->Edit execute code->Write the below code.
Code :
using System;
using
System.Collections.Generic;
using System.IO;
using
System.IO.IsolatedStorage;
using
System.Linq;
using
LightSwitchApplication.UserCode;
using
Microsoft.LightSwitch;
using
Microsoft.LightSwitch.Framework.Client;
using
Microsoft.LightSwitch.Presentation;
using
Microsoft.LightSwitch.Presentation.Extensions;
using
Microsoft.LightSwitch.Threading;
namespace
LightSwitchApplication
{
public partial
class
EditableFileInformationsGrid
{
partial void
ImportAFile_Execute()
{
Dispatchers.Main.BeginInvoke(()
=>
{
SelectFileWindow
selectFileWindow = new
SelectFileWindow();
selectFileWindow.Closed += new
EventHandler(selectFileWindow_Closed);
selectFileWindow.Show();
});
}
void selectFileWindow_Closed(object
sender, EventArgs e)
{
SelectFileWindow
selectFileWindow = (SelectFileWindow)sender;
if (selectFileWindow.DialogResult ==
true && (selectFileWindow.DocumentStream !=
null))
{
byte[] fileData =
new byte[selectFileWindow.DocumentStream.Length];
using (StreamReader
streamReader = new
StreamReader(selectFileWindow.DocumentStream))
{
for (int
i = 0; i < selectFileWindow.DocumentStream.Length; i++)
{
fileData[i] = (byte)selectFileWindow.DocumentStream.ReadByte();
}
}
FileInformation
fileInformation = this.DataWorkspace.ApplicationData.FileInformations.AddN();
fileInformation.Name = selectFileWindow.SafeFileName;
fileInformation.Miscellaneous =
"Size of file in bytes: " + fileData.Length
fileInformation.Data = fileData;
selectFileWindow.DocumentStream.Close();
selectFileWindow.DocumentStream.Dispose();
}
}
}
}
Step 7 : Go to file view in solution
explorer.
Step 8 : Expand client->Right click on
user code->Add->New item.
Step 9 : Select text file->Write name
(SelectFileWindow.xaml)->Add->Write the below code.
Code :
<UserControl
x:Class="LightSwitchApplication.UserCode.SelectFileWindow"
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"
d:DesignHeight="300"
d:DesignWidth="400">
<Grid
x:Name="LayoutRoot"
Background="White">
</Grid>
</UserControl>
<controls:ChildWindow
x:Class="LightSwitchApplication.UserCode.SelectFileWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
Width="394"
Height="305"
Title="Select
File Dialog" >
<Grid
x:Name="LayoutRoot"
Margin="2">
<Grid.RowDefinitions>
<RowDefinition
/>
<RowDefinition
Height="Auto"
/>
</Grid.RowDefinitions>
<Button
x:Name="CancelButton"
Content="Cancel"
Click="CancelButton_Click"
Width="75"
Height="23"
HorizontalAlignment="Right"
Margin="0,12,0,0"
Grid.Row="1"
/>
<Button
x:Name="OKButton"
Content="OK"
Click="OKButton_Click"
Width="75"
Height="23"
HorizontalAlignment="Right"
Margin="0,12,79,0"
Grid.Row="1"
/>
<Button
Content="Browse"
Height="23"
HorizontalAlignment="Left"
Margin="291,92,0,0"
Name="BrowseButton"
VerticalAlignment="Top"
Width="75"
Click="BrowseButton_Click"
/>
<TextBox
Height="23"
HorizontalAlignment="Left"
Margin="66,92,0,0"
Name="FileTextBox"
VerticalAlignment="Top"
Width="219"
IsEnabled="True"/>
</Grid>
</controls:ChildWindow>
Step 10 : Again right click on user
code->Add->New item.
Step 11 : Select class->Write name
(SelectFileWindow.cs)->Add->Write the below code.
Code :
using System;
using
System.Net;
using
System.Windows;
using
System.Windows.Controls;
using
System.Windows.Documents;
using
System.Windows.Ink;
using
System.Windows.Input;
using
System.Windows.Media;
using
System.Windows.Media.Animation;
using
System.Windows.Shapes;
namespace
LightSwitchApplication.UserCode
{
public partial
class
SelectFileWindow : ChildWindow
{
public SelectFileWindow()
{
InitializeComponent();
}
private FileStream documentStream;
public FileStream DocumentStream
{
get {
return documentStream; }
set { documentStream =
value; }
}
private
String safeFileName;
public
String SafeFileName
{
get {
return safeFileName; }
set { safeFileName =
value; }
}
private void
OKButton_Click(object sender, RoutedEventArgs
e)
{
this.DialogResult =
true;
}
private void
CancelButton_Click(object sender,
RoutedEventArgs e)
{
this.DialogResult =
false;
}
private void
BrowseButton_Click(object sender,
RoutedEventArgs e)
{
OpenFileDialog openFileDialog = new
OpenFileDialog();
if (openFileDialog.ShowDialog() ==
true)
{
this.FileTextBox.Text =
openFileDialog.File.Name;
this.safeFileName =
openFileDialog.File.Name;
this.FileTextBox.IsReadOnly =
true;
FileStream myStream = openFileDialog.File.OpenRead();
this.documentStream = myStream;
}
}
}
}
Step 12 : Now right click on client->Add
references.
Step 13 : Select
System.Windows.Controls->Ok.
Step 14 : Run application (Press
F5)->Click on ImportAFile button.
Step 15 : Now you will browse a file
from system drive then Ok.