Skip to content
This repository was archived by the owner on May 15, 2025. It is now read-only.

Commit fbeae21

Browse files
SelectedIndexChanged event is added to MaterialPicker control
1 parent c4c8c7d commit fbeae21

3 files changed

Lines changed: 39 additions & 0 deletions

File tree

example/ExampleMaterialDesignControls/Pages/MaterialPickerPage.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<material:MaterialPicker x:Name="pckColors" Type="Filled" LabelText="Color" AnimateError="True" />
1111
<material:MaterialPicker x:Name="pckSizes" SelectedItem="{Binding SelectedSizes}" Type="Outlined" LabelText="Size" />
1212
<material:MaterialPicker x:Name="pckModels" Type="Lined" LabelText="Model" LeadingIcon="color.png" />
13+
<Label x:Name="lblSelectedIndex" Text="SelectedIndex: -" />
1314
<material:MaterialButton Text="Save" Icon="save.png" Command="{Binding TapCommand}" />
1415
</StackLayout>
1516
</ScrollView>

example/ExampleMaterialDesignControls/Pages/MaterialPickerPage.xaml.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ public MaterialPickerPage()
1515

1616
this.pckColors.ItemsSource = new List<string> { "Red", "Blue", "Green" };
1717
this.pckSizes.ItemsSource = new List<string> { "P", "M", "X", "XL" };
18+
1819
this.pckModels.ItemsSource = new List<string> { "Model A", "Model B", "Model C", "Model D" };
20+
this.pckModels.SelectedIndexChanged += PckModels_SelectedIndexChanged;
1921

2022
this.SelectedSizes = "M";
2123

@@ -24,6 +26,11 @@ public MaterialPickerPage()
2426
this.BindingContext = this;
2527
}
2628

29+
private void PckModels_SelectedIndexChanged(object sender, EventArgs e)
30+
{
31+
this.lblSelectedIndex.Text = $"SelectedIndex: {this.pckModels.SelectedIndex}";
32+
}
33+
2734
public ICommand TapCommand { get; set; }
2835

2936
public async void OnTap(object parameter)

src/MaterialDesignControls/Controls/MaterialPicker.xaml.cs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ public MaterialPicker()
4141

4242
#endregion Attributes
4343

44+
#region Events
45+
46+
public event EventHandler SelectedIndexChanged;
47+
48+
#endregion Events
49+
4450
#region Properties
4551

4652
public static readonly BindableProperty TypeProperty =
@@ -233,6 +239,27 @@ public bool AnimateError
233239
set { SetValue(AnimateErrorProperty, value); }
234240
}
235241

242+
public int SelectedIndex
243+
{
244+
get
245+
{
246+
if (this.ItemsSource != null)
247+
{
248+
var index = 0;
249+
foreach (var item in this.ItemsSource)
250+
{
251+
if (index.Equals(this.pckOptions.SelectedIndex))
252+
{
253+
return index;
254+
}
255+
index++;
256+
}
257+
}
258+
259+
return -1;
260+
}
261+
}
262+
236263
#endregion Properties
237264

238265
#region Methods
@@ -432,6 +459,10 @@ private void PckOptions_SelectedIndexChanged(object sender, EventArgs e)
432459
if (index.Equals(this.pckOptions.SelectedIndex))
433460
{
434461
this.SelectedItem = item.ToString();
462+
if (this.SelectedIndexChanged != null)
463+
{
464+
this.SelectedIndexChanged.Invoke(this, e);
465+
}
435466
break;
436467
}
437468
index++;

0 commit comments

Comments
 (0)