Add multiple datatable and tabitem.content for each tabitem in tabcontrol
This is my xmal code for tabcontrol
<TabControl x:Name="tabControl1" Grid.Row="2" Height="auto" Width="auto" ItemsSource="Binding tabs" SelectionChanged="tabControl1_SelectionChanged" SelectedItem="Binding SelectedEvaluation" TabStripPlacement="Top" >
<TabControl.ContentTemplate >
<DataTemplate>
<DataGrid x:Name="dataGrid1" IsReadOnly="True" Height="auto" Width="auto" ItemsSource="Binding" AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridTextColumn Width="*" Header="Day" Binding="Binding [Day]"/>
<DataGridTextColumn Width="*" Header="Date" Binding="Binding [Date]"/>
<DataGridTextColumn Width="*" Header="Time" Binding="Binding [Time]"/>
<DataGridTextColumn Width="*" Header="Lat" Binding="Binding [Lat]"/>
<DataGridTextColumn Width="*" Header="Long" Binding="Binding [Long]"/>
<DataGridTextColumn Width="*" Header="Address" Binding="Binding [Address]"/>
<DataGridTextColumn Width="*" Header="Accuracy" Binding="Binding [Accuracy]"/>
<DataGridTextColumn Width="*" Header="Type" Binding="Binding [Type]"/>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
And this is my code to create tabs
public void LoadData()
sy.OpenFileDialog op = new sy.OpenFileDialog();
op.Multiselect = true;
if (op.ShowDialog() == sy.DialogResult.OK)
for each (string s in op.FileNames)
val = s;
values = s.Split('\');
lastItem = values[values.Length - 1];
newTabItem = new TabItem
Header = lastItem,
;
tabControl1.Items.Add(newTabItem);
ReadJsonFile();
DataTable dt = new DataTable();
dt.Columns.Add("Day", typeof(string));
dt.Columns.Add("Date", typeof(string));
dt.Columns.Add("Time", typeof(string));
dt.Columns.Add("Lat", typeof(string));
dt.Columns.Add("Long", typeof(string));
dt.Columns.Add("Address", typeof(string));
dt.Columns.Add("Type", typeof(string));
foreach (var item in data)
dt.Rows.Add(item.getDay(), item.getDate(), item.getTime(), item.getLat(), item.getLongi(), item.getAddresst(), item.getTYpe());
newTabItem.Content = dt;
public void ReadJsonFile()
string json = string.Empty;
using (StreamReader r = new StreamReader(val))
json = r.ReadToEnd();
var test = JObject.Parse(json);
JArray items = (JArray)test["locations"];
int length = items.Count;
data = new List<Info>();
for (int i = 0; i < items.Count; i++)
var d = test["locations"][i]["timestampMs"];
double dTimeSpan = Convert.ToDouble(d);
DateTime dtReturn = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(Math.Round(dTimeSpan / 1000d)).ToLocalTime();
string printDate = dtReturn.DayOfWeek.ToString() + "," + " " + dtReturn.ToShortDateString() + " " + dtReturn.ToShortTimeString();
day = dtReturn.DayOfWeek.ToString();
date = dtReturn.ToShortDateString();
time = dtReturn.ToShortTimeString();
var e = test["locations"][i]["latitudeE7"];
var f = test["locations"][i]["longitudeE7"];
//getLocationByGeoLocation(e.ToString(), f.ToString());
var g = test["locations"][i]["activity"] != null;
if (g == true)
JArray items1 = (JArray)test["locations"][i]["activity"];
int length1 = items1.Count;
while (j < items1.Count )
if(j == 0)
var h = test["locations"][i]["activity"][j]["activity"][j]["type"];
type = h.ToString();
j = 1;
else
j++;
j = 0;
else
Info ddm = new Info(day, date, time, lat, longi, address, type);
data.Add(ddm);
return;
Now I want when creating every new tab create a data table for each tab. for ex. if I create 5 tabs then for each tab new data table and tab item content to be open because I want to apply a filter on all tab but if two tabs are open then I only able to apply filter on last open tab.
This image show that two tabs are open but when i apply filter first tab cannot filterenter image description here
And the on last tab filter is applied
enter image description here
I dont know how to do this please help me
c# wpf
add a comment |
This is my xmal code for tabcontrol
<TabControl x:Name="tabControl1" Grid.Row="2" Height="auto" Width="auto" ItemsSource="Binding tabs" SelectionChanged="tabControl1_SelectionChanged" SelectedItem="Binding SelectedEvaluation" TabStripPlacement="Top" >
<TabControl.ContentTemplate >
<DataTemplate>
<DataGrid x:Name="dataGrid1" IsReadOnly="True" Height="auto" Width="auto" ItemsSource="Binding" AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridTextColumn Width="*" Header="Day" Binding="Binding [Day]"/>
<DataGridTextColumn Width="*" Header="Date" Binding="Binding [Date]"/>
<DataGridTextColumn Width="*" Header="Time" Binding="Binding [Time]"/>
<DataGridTextColumn Width="*" Header="Lat" Binding="Binding [Lat]"/>
<DataGridTextColumn Width="*" Header="Long" Binding="Binding [Long]"/>
<DataGridTextColumn Width="*" Header="Address" Binding="Binding [Address]"/>
<DataGridTextColumn Width="*" Header="Accuracy" Binding="Binding [Accuracy]"/>
<DataGridTextColumn Width="*" Header="Type" Binding="Binding [Type]"/>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
And this is my code to create tabs
public void LoadData()
sy.OpenFileDialog op = new sy.OpenFileDialog();
op.Multiselect = true;
if (op.ShowDialog() == sy.DialogResult.OK)
for each (string s in op.FileNames)
val = s;
values = s.Split('\');
lastItem = values[values.Length - 1];
newTabItem = new TabItem
Header = lastItem,
;
tabControl1.Items.Add(newTabItem);
ReadJsonFile();
DataTable dt = new DataTable();
dt.Columns.Add("Day", typeof(string));
dt.Columns.Add("Date", typeof(string));
dt.Columns.Add("Time", typeof(string));
dt.Columns.Add("Lat", typeof(string));
dt.Columns.Add("Long", typeof(string));
dt.Columns.Add("Address", typeof(string));
dt.Columns.Add("Type", typeof(string));
foreach (var item in data)
dt.Rows.Add(item.getDay(), item.getDate(), item.getTime(), item.getLat(), item.getLongi(), item.getAddresst(), item.getTYpe());
newTabItem.Content = dt;
public void ReadJsonFile()
string json = string.Empty;
using (StreamReader r = new StreamReader(val))
json = r.ReadToEnd();
var test = JObject.Parse(json);
JArray items = (JArray)test["locations"];
int length = items.Count;
data = new List<Info>();
for (int i = 0; i < items.Count; i++)
var d = test["locations"][i]["timestampMs"];
double dTimeSpan = Convert.ToDouble(d);
DateTime dtReturn = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(Math.Round(dTimeSpan / 1000d)).ToLocalTime();
string printDate = dtReturn.DayOfWeek.ToString() + "," + " " + dtReturn.ToShortDateString() + " " + dtReturn.ToShortTimeString();
day = dtReturn.DayOfWeek.ToString();
date = dtReturn.ToShortDateString();
time = dtReturn.ToShortTimeString();
var e = test["locations"][i]["latitudeE7"];
var f = test["locations"][i]["longitudeE7"];
//getLocationByGeoLocation(e.ToString(), f.ToString());
var g = test["locations"][i]["activity"] != null;
if (g == true)
JArray items1 = (JArray)test["locations"][i]["activity"];
int length1 = items1.Count;
while (j < items1.Count )
if(j == 0)
var h = test["locations"][i]["activity"][j]["activity"][j]["type"];
type = h.ToString();
j = 1;
else
j++;
j = 0;
else
Info ddm = new Info(day, date, time, lat, longi, address, type);
data.Add(ddm);
return;
Now I want when creating every new tab create a data table for each tab. for ex. if I create 5 tabs then for each tab new data table and tab item content to be open because I want to apply a filter on all tab but if two tabs are open then I only able to apply filter on last open tab.
This image show that two tabs are open but when i apply filter first tab cannot filterenter image description here
And the on last tab filter is applied
enter image description here
I dont know how to do this please help me
c# wpf
add a comment |
This is my xmal code for tabcontrol
<TabControl x:Name="tabControl1" Grid.Row="2" Height="auto" Width="auto" ItemsSource="Binding tabs" SelectionChanged="tabControl1_SelectionChanged" SelectedItem="Binding SelectedEvaluation" TabStripPlacement="Top" >
<TabControl.ContentTemplate >
<DataTemplate>
<DataGrid x:Name="dataGrid1" IsReadOnly="True" Height="auto" Width="auto" ItemsSource="Binding" AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridTextColumn Width="*" Header="Day" Binding="Binding [Day]"/>
<DataGridTextColumn Width="*" Header="Date" Binding="Binding [Date]"/>
<DataGridTextColumn Width="*" Header="Time" Binding="Binding [Time]"/>
<DataGridTextColumn Width="*" Header="Lat" Binding="Binding [Lat]"/>
<DataGridTextColumn Width="*" Header="Long" Binding="Binding [Long]"/>
<DataGridTextColumn Width="*" Header="Address" Binding="Binding [Address]"/>
<DataGridTextColumn Width="*" Header="Accuracy" Binding="Binding [Accuracy]"/>
<DataGridTextColumn Width="*" Header="Type" Binding="Binding [Type]"/>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
And this is my code to create tabs
public void LoadData()
sy.OpenFileDialog op = new sy.OpenFileDialog();
op.Multiselect = true;
if (op.ShowDialog() == sy.DialogResult.OK)
for each (string s in op.FileNames)
val = s;
values = s.Split('\');
lastItem = values[values.Length - 1];
newTabItem = new TabItem
Header = lastItem,
;
tabControl1.Items.Add(newTabItem);
ReadJsonFile();
DataTable dt = new DataTable();
dt.Columns.Add("Day", typeof(string));
dt.Columns.Add("Date", typeof(string));
dt.Columns.Add("Time", typeof(string));
dt.Columns.Add("Lat", typeof(string));
dt.Columns.Add("Long", typeof(string));
dt.Columns.Add("Address", typeof(string));
dt.Columns.Add("Type", typeof(string));
foreach (var item in data)
dt.Rows.Add(item.getDay(), item.getDate(), item.getTime(), item.getLat(), item.getLongi(), item.getAddresst(), item.getTYpe());
newTabItem.Content = dt;
public void ReadJsonFile()
string json = string.Empty;
using (StreamReader r = new StreamReader(val))
json = r.ReadToEnd();
var test = JObject.Parse(json);
JArray items = (JArray)test["locations"];
int length = items.Count;
data = new List<Info>();
for (int i = 0; i < items.Count; i++)
var d = test["locations"][i]["timestampMs"];
double dTimeSpan = Convert.ToDouble(d);
DateTime dtReturn = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(Math.Round(dTimeSpan / 1000d)).ToLocalTime();
string printDate = dtReturn.DayOfWeek.ToString() + "," + " " + dtReturn.ToShortDateString() + " " + dtReturn.ToShortTimeString();
day = dtReturn.DayOfWeek.ToString();
date = dtReturn.ToShortDateString();
time = dtReturn.ToShortTimeString();
var e = test["locations"][i]["latitudeE7"];
var f = test["locations"][i]["longitudeE7"];
//getLocationByGeoLocation(e.ToString(), f.ToString());
var g = test["locations"][i]["activity"] != null;
if (g == true)
JArray items1 = (JArray)test["locations"][i]["activity"];
int length1 = items1.Count;
while (j < items1.Count )
if(j == 0)
var h = test["locations"][i]["activity"][j]["activity"][j]["type"];
type = h.ToString();
j = 1;
else
j++;
j = 0;
else
Info ddm = new Info(day, date, time, lat, longi, address, type);
data.Add(ddm);
return;
Now I want when creating every new tab create a data table for each tab. for ex. if I create 5 tabs then for each tab new data table and tab item content to be open because I want to apply a filter on all tab but if two tabs are open then I only able to apply filter on last open tab.
This image show that two tabs are open but when i apply filter first tab cannot filterenter image description here
And the on last tab filter is applied
enter image description here
I dont know how to do this please help me
c# wpf
This is my xmal code for tabcontrol
<TabControl x:Name="tabControl1" Grid.Row="2" Height="auto" Width="auto" ItemsSource="Binding tabs" SelectionChanged="tabControl1_SelectionChanged" SelectedItem="Binding SelectedEvaluation" TabStripPlacement="Top" >
<TabControl.ContentTemplate >
<DataTemplate>
<DataGrid x:Name="dataGrid1" IsReadOnly="True" Height="auto" Width="auto" ItemsSource="Binding" AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridTextColumn Width="*" Header="Day" Binding="Binding [Day]"/>
<DataGridTextColumn Width="*" Header="Date" Binding="Binding [Date]"/>
<DataGridTextColumn Width="*" Header="Time" Binding="Binding [Time]"/>
<DataGridTextColumn Width="*" Header="Lat" Binding="Binding [Lat]"/>
<DataGridTextColumn Width="*" Header="Long" Binding="Binding [Long]"/>
<DataGridTextColumn Width="*" Header="Address" Binding="Binding [Address]"/>
<DataGridTextColumn Width="*" Header="Accuracy" Binding="Binding [Accuracy]"/>
<DataGridTextColumn Width="*" Header="Type" Binding="Binding [Type]"/>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
And this is my code to create tabs
public void LoadData()
sy.OpenFileDialog op = new sy.OpenFileDialog();
op.Multiselect = true;
if (op.ShowDialog() == sy.DialogResult.OK)
for each (string s in op.FileNames)
val = s;
values = s.Split('\');
lastItem = values[values.Length - 1];
newTabItem = new TabItem
Header = lastItem,
;
tabControl1.Items.Add(newTabItem);
ReadJsonFile();
DataTable dt = new DataTable();
dt.Columns.Add("Day", typeof(string));
dt.Columns.Add("Date", typeof(string));
dt.Columns.Add("Time", typeof(string));
dt.Columns.Add("Lat", typeof(string));
dt.Columns.Add("Long", typeof(string));
dt.Columns.Add("Address", typeof(string));
dt.Columns.Add("Type", typeof(string));
foreach (var item in data)
dt.Rows.Add(item.getDay(), item.getDate(), item.getTime(), item.getLat(), item.getLongi(), item.getAddresst(), item.getTYpe());
newTabItem.Content = dt;
public void ReadJsonFile()
string json = string.Empty;
using (StreamReader r = new StreamReader(val))
json = r.ReadToEnd();
var test = JObject.Parse(json);
JArray items = (JArray)test["locations"];
int length = items.Count;
data = new List<Info>();
for (int i = 0; i < items.Count; i++)
var d = test["locations"][i]["timestampMs"];
double dTimeSpan = Convert.ToDouble(d);
DateTime dtReturn = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(Math.Round(dTimeSpan / 1000d)).ToLocalTime();
string printDate = dtReturn.DayOfWeek.ToString() + "," + " " + dtReturn.ToShortDateString() + " " + dtReturn.ToShortTimeString();
day = dtReturn.DayOfWeek.ToString();
date = dtReturn.ToShortDateString();
time = dtReturn.ToShortTimeString();
var e = test["locations"][i]["latitudeE7"];
var f = test["locations"][i]["longitudeE7"];
//getLocationByGeoLocation(e.ToString(), f.ToString());
var g = test["locations"][i]["activity"] != null;
if (g == true)
JArray items1 = (JArray)test["locations"][i]["activity"];
int length1 = items1.Count;
while (j < items1.Count )
if(j == 0)
var h = test["locations"][i]["activity"][j]["activity"][j]["type"];
type = h.ToString();
j = 1;
else
j++;
j = 0;
else
Info ddm = new Info(day, date, time, lat, longi, address, type);
data.Add(ddm);
return;
Now I want when creating every new tab create a data table for each tab. for ex. if I create 5 tabs then for each tab new data table and tab item content to be open because I want to apply a filter on all tab but if two tabs are open then I only able to apply filter on last open tab.
This image show that two tabs are open but when i apply filter first tab cannot filterenter image description here
And the on last tab filter is applied
enter image description here
I dont know how to do this please help me
c# wpf
c# wpf
asked Nov 15 '18 at 4:28
JuileeJuilee
127
127
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I am confused with your posted sample
You are binding tabcontrol itemssource to tabs, but I did not see, where you set tabs property in code.
Next When you are binging itemssource, where is your Itemtemplate?
Next LoadData describes that your are directly adding items to tabControl, instead of adding to tabs property.
Can you please follow simple steps as mentioned below.
1. Fill your tabs property in load data. Note that create tabs property as Observable collection. Also You should not create property as dataset (list of datatable) I would suggest to create simple class with Notify property.
2. Bind tabs property to tabControl itemssource
3. Define Itemtemplate for tabControl
Thats all.
Please reverse your requirement. i.e. first create dataset (i would suggest to create ObservableCollection). bind it to tabControl. so you will get one tabitem per item in tab property.
Next you want to apply filter. its easy. GetSelectedItem and apply your filter. and reset filter for previous item. You can get previous and current selectedItem in SelectoinChange event args.
Hope it will work
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53312446%2fadd-multiple-datatable-and-tabitem-content-for-each-tabitem-in-tabcontrol%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I am confused with your posted sample
You are binding tabcontrol itemssource to tabs, but I did not see, where you set tabs property in code.
Next When you are binging itemssource, where is your Itemtemplate?
Next LoadData describes that your are directly adding items to tabControl, instead of adding to tabs property.
Can you please follow simple steps as mentioned below.
1. Fill your tabs property in load data. Note that create tabs property as Observable collection. Also You should not create property as dataset (list of datatable) I would suggest to create simple class with Notify property.
2. Bind tabs property to tabControl itemssource
3. Define Itemtemplate for tabControl
Thats all.
Please reverse your requirement. i.e. first create dataset (i would suggest to create ObservableCollection). bind it to tabControl. so you will get one tabitem per item in tab property.
Next you want to apply filter. its easy. GetSelectedItem and apply your filter. and reset filter for previous item. You can get previous and current selectedItem in SelectoinChange event args.
Hope it will work
add a comment |
I am confused with your posted sample
You are binding tabcontrol itemssource to tabs, but I did not see, where you set tabs property in code.
Next When you are binging itemssource, where is your Itemtemplate?
Next LoadData describes that your are directly adding items to tabControl, instead of adding to tabs property.
Can you please follow simple steps as mentioned below.
1. Fill your tabs property in load data. Note that create tabs property as Observable collection. Also You should not create property as dataset (list of datatable) I would suggest to create simple class with Notify property.
2. Bind tabs property to tabControl itemssource
3. Define Itemtemplate for tabControl
Thats all.
Please reverse your requirement. i.e. first create dataset (i would suggest to create ObservableCollection). bind it to tabControl. so you will get one tabitem per item in tab property.
Next you want to apply filter. its easy. GetSelectedItem and apply your filter. and reset filter for previous item. You can get previous and current selectedItem in SelectoinChange event args.
Hope it will work
add a comment |
I am confused with your posted sample
You are binding tabcontrol itemssource to tabs, but I did not see, where you set tabs property in code.
Next When you are binging itemssource, where is your Itemtemplate?
Next LoadData describes that your are directly adding items to tabControl, instead of adding to tabs property.
Can you please follow simple steps as mentioned below.
1. Fill your tabs property in load data. Note that create tabs property as Observable collection. Also You should not create property as dataset (list of datatable) I would suggest to create simple class with Notify property.
2. Bind tabs property to tabControl itemssource
3. Define Itemtemplate for tabControl
Thats all.
Please reverse your requirement. i.e. first create dataset (i would suggest to create ObservableCollection). bind it to tabControl. so you will get one tabitem per item in tab property.
Next you want to apply filter. its easy. GetSelectedItem and apply your filter. and reset filter for previous item. You can get previous and current selectedItem in SelectoinChange event args.
Hope it will work
I am confused with your posted sample
You are binding tabcontrol itemssource to tabs, but I did not see, where you set tabs property in code.
Next When you are binging itemssource, where is your Itemtemplate?
Next LoadData describes that your are directly adding items to tabControl, instead of adding to tabs property.
Can you please follow simple steps as mentioned below.
1. Fill your tabs property in load data. Note that create tabs property as Observable collection. Also You should not create property as dataset (list of datatable) I would suggest to create simple class with Notify property.
2. Bind tabs property to tabControl itemssource
3. Define Itemtemplate for tabControl
Thats all.
Please reverse your requirement. i.e. first create dataset (i would suggest to create ObservableCollection). bind it to tabControl. so you will get one tabitem per item in tab property.
Next you want to apply filter. its easy. GetSelectedItem and apply your filter. and reset filter for previous item. You can get previous and current selectedItem in SelectoinChange event args.
Hope it will work
answered Nov 15 '18 at 5:01
Kamran AsimKamran Asim
49926
49926
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53312446%2fadd-multiple-datatable-and-tabitem-content-for-each-tabitem-in-tabcontrol%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown