Skip to content

Commit 074a45a

Browse files
jinekmairaw
authored andcommitted
Issue3888 fix (#4016)
* Improper exception handling demonstration #3888 #3888 * Exception handling demonstration removed as unessesary * Class name typo and comment formatting * #3888 VB fix to match CS code
1 parent c9186bb commit 074a45a

File tree

4 files changed

+38
-52
lines changed

4 files changed

+38
-52
lines changed

samples/snippets/csharp/VS_Snippets_Wpf/ContentControlTemplateSelector/CSharp/Window1.xaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@
2424
</Grid>
2525
</DataTemplate>
2626

27-
<local:NumderDataTemplateSelector x:Key="numberTemplateSelector"/>
27+
<local:NumberDataTemplateSelector x:Key="numberTemplateSelector"
28+
NumberTemplate="{StaticResource numberTemplate}"
29+
LargeNumberTemplate="{StaticResource largeNumberTemplate}"/>
2830

2931
</Window.Resources>
3032
<StackPanel>

samples/snippets/csharp/VS_Snippets_Wpf/ContentControlTemplateSelector/CSharp/Window1.xaml.cs

Lines changed: 17 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -30,42 +30,29 @@ public Window1()
3030
}
3131

3232
//<Snippet2>
33-
public class NumderDataTemplateSelector : DataTemplateSelector
33+
public class NumberDataTemplateSelector : DataTemplateSelector
3434
{
35+
public DataTemplate NumberTemplate { get; set; }
36+
public DataTemplate LargeNumberTemplate { get; set; }
37+
3538
public override DataTemplate SelectTemplate(object item, DependencyObject container)
3639
{
37-
string numberStr = item as string;
38-
39-
if (numberStr != null)
40+
// Null value can be passed by IDE designer
41+
if (item == null) return null;
42+
43+
var num = Convert.ToInt32((string)item);
44+
45+
// Select one of the DataTemplate objects, based on the
46+
// value of the selected item in the ComboBox.
47+
if (num < 5)
4048
{
41-
int num;
42-
Window win = Application.Current.MainWindow;
43-
44-
try
45-
{
46-
num = Convert.ToInt32(numberStr);
47-
}
48-
catch
49-
{
50-
return null;
51-
}
52-
53-
// Select one of the DataTemplate objects, based on the
54-
// value of the selected item in the ComboBox.
55-
if (num < 5)
56-
{
57-
return win.FindResource("numberTemplate") as DataTemplate;
58-
}
59-
else
60-
{
61-
return win.FindResource("largeNumberTemplate") as DataTemplate;
62-
63-
}
49+
return NumberTemplate;
50+
}
51+
else
52+
{
53+
return LargeNumberTemplate;
6454
}
65-
66-
return null;
6755
}
68-
6956
}
7057
//</Snippet2>
7158
}

samples/snippets/visualbasic/VS_Snippets_Wpf/ContentControlTemplateSelector/VisualBasic/Window1.xaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@
2424
</Grid>
2525
</DataTemplate>
2626

27-
<local:NumderDataTemplateSelector x:Key="numberTemplateSelector"/>
27+
<local:NumberDataTemplateSelector x:Key="numberTemplateSelector"
28+
NumberTemplate="{StaticResource numberTemplate}"
29+
LargeNumberTemplate="{StaticResource largeNumberTemplate}"/>
2830

2931
</Window.Resources>
3032
<StackPanel>

samples/snippets/visualbasic/VS_Snippets_Wpf/ContentControlTemplateSelector/VisualBasic/Window1.xaml.vb

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,36 +29,31 @@ End Class 'Window1
2929

3030

3131
'<Snippet2>
32-
Public Class NumderDataTemplateSelector
32+
Public Class NumberDataTemplateSelector
3333
Inherits DataTemplateSelector
3434

35+
Public Property NumberTemplate As DataTemplate
36+
Public Property LargeNumberTemplate As DataTemplate
37+
3538
Public Overrides Function SelectTemplate(ByVal item As Object, _
3639
ByVal container As DependencyObject) As DataTemplate
3740

38-
Dim numberStr As String = item '
39-
40-
If Not (numberStr Is Nothing) Then
41-
Dim num As Integer
42-
Dim win As Window = Application.Current.MainWindow
41+
' Nothing can be passed by IDE designer
42+
if (item Is Nothing) Then
43+
Return Nothing
44+
End If
4345

44-
Try
45-
num = Convert.ToInt32(numberStr)
46-
Catch
47-
Return Nothing
48-
End Try
46+
Dim num = Convert.ToInt32(CStr(item))
4947

50-
' Select one of the DataTemplate objects, based on the
51-
' value of the selected item in the ComboBox.
52-
If num < 5 Then
53-
Return win.FindResource("numberTemplate") '
48+
' Select one of the DataTemplate objects, based on the
49+
' value of the selected item in the ComboBox.
50+
If num < 5 Then
51+
Return NumberTemplate
5452

55-
Else
56-
Return win.FindResource("largeNumberTemplate") '
57-
End If
53+
Else
54+
Return LargeNumberTemplate
5855
End If
5956

60-
Return Nothing
61-
6257
End Function 'SelectTemplate
6358
End Class 'NumderDataTemplateSelector
6459
'</Snippet2>

0 commit comments

Comments
 (0)