public bool TryGetSelectedMedia(out string imageService, out IMediaItem[] mediaItems)
{
var validItems = ImagePageCombo.Items.Cast<SelectedMedia>()
.Where(x => x.IsValid).Select(x => x.Item).OfType<IMediaItem>().ToArray();
if (validItems.Length > 0 &&
ImageServiceCombo.SelectedIndex > -1)
{
var serviceName = this.ServiceName;
if (MessageBox.Show(string.Format(Properties.Resources.PostPictureConfirm1, serviceName, validItems.Length),
Properties.Resources.PostPictureConfirm2,
MessageBoxButtons.OKCancel,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1)
== DialogResult.OK)
{
//収集した MediaItem が破棄されないように、予め null を代入しておく
foreach (SelectedMedia media in ImagePageCombo.Items)
{
if (media != null) media.Item = null;
}
imageService = serviceName;
mediaItems = validItems;
EndSelection();
SetImagePageCombo();
return true;
}
}
else
{
MessageBox.Show(Properties.Resources.PostPictureWarn1, Properties.Resources.PostPictureWarn2);
}
EndSelection();
imageService = null;
mediaItems = null;
return false;
}