ResourceCandidateVectorView Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta una raccolta di oggetti ResourceCandidate .
public ref class ResourceCandidateVectorView sealed : IIterable<ResourceCandidate ^>, IVectorView<ResourceCandidate ^>
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class ResourceCandidateVectorView final : IIterable<ResourceCandidate>, IVectorView<ResourceCandidate>
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class ResourceCandidateVectorView : IEnumerable<ResourceCandidate>, IReadOnlyList<ResourceCandidate>
Public NotInheritable Class ResourceCandidateVectorView
Implements IEnumerable(Of ResourceCandidate), IReadOnlyList(Of ResourceCandidate)
- Ereditarietà
- Attributi
- Implementazioni
Requisiti Windows
Famiglia di dispositivi |
Windows 10 (è stato introdotto in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)
|
Esempio
Questo esempio si basa sullo scenario 10 delle risorse dell'applicazione e dell'esempio di localizzazione. Vedere l'esempio per la soluzione completa.
private void Scenario10Button_Show_Click(object sender, RoutedEventArgs e)
{
Button b = sender as Button;
if (b != null)
{
// Use a cloned context for this scenario so that qualifier values set
// in this scenario don't impact behavior in other scenarios that
// use a default context for the view (crossover effects between
// the scenarios will not be expected).
var context = ResourceContext.GetForCurrentView().Clone();
var selectedLanguage = Scenario10ComboBox_Language.SelectedValue;
var selectedScale = Scenario10ComboBox_Scale.SelectedValue;
var selectedContrast = Scenario10ComboBox_Contrast.SelectedValue;
var selectedHomeRegion = Scenario10ComboBox_HomeRegion.SelectedValue;
if (selectedLanguage != null)
{
context.QualifierValues["language"] = selectedLanguage.ToString();
}
if (selectedScale != null)
{
context.QualifierValues["scale"] = selectedScale.ToString();
}
if (selectedContrast != null)
{
context.QualifierValues["contrast"] = selectedContrast.ToString();
}
if (selectedHomeRegion != null)
{
context.QualifierValues["homeregion"] = selectedHomeRegion.ToString();
}
Scenario10_SearchMultipleResourceIds(context, new string[] { "LanguageOnly", "ScaleOnly", "ContrastOnly", "HomeRegionOnly", "MultiDimensional" });
}
}
void Scenario10_SearchMultipleResourceIds(ResourceContext context, string[] resourceIds)
{
this.Scenario10TextBlock.Text = "";
var dimensionMap = ResourceManager.Current.MainResourceMap.GetSubtree("dimensions");
foreach (var id in resourceIds)
{
NamedResource namedResource;
if (dimensionMap.TryGetValue(id, out namedResource))
{
var resourceCandidates = namedResource.ResolveAll(context);
Scenario10_ShowCandidates(id, resourceCandidates);
}
}
}
void Scenario10_ShowCandidates(string resourceId, IReadOnlyList<ResourceCandidate> resourceCandidates)
{
// Print 'resourceId', 'found value', 'qualifer info', 'matching condition'
string outText = "resourceId: dimensions\\" + resourceId + "\r\n";
int i = 0;
foreach (var candidate in resourceCandidates)
{
var value = candidate.ValueAsString;
outText += " Candidate " + i.ToString() + ":" + value + "\r\n";
int j = 0;
foreach (var qualifier in candidate.Qualifiers)
{
var qualifierName = qualifier.QualifierName;
var qualifierValue = qualifier.QualifierValue;
outText += " Qualifer: " + qualifierName + ": " + qualifierValue + "\r\n";
outText += " Matching: IsMatch (" + qualifier.IsMatch.ToString() + ") " + "IsDefault (" + qualifier.IsDefault.ToString() + ")" + "\r\n";
j++;
}
i++;
}
this.Scenario10TextBlock.Text += outText + "\r\n";
}
Commenti
Enumerazione della raccolta in C# o Microsoft Visual Basic
ResourceCandidateVectorView è enumerabile, quindi è possibile usare una sintassi specifica del linguaggio, ad esempio foreach in C# per enumerare gli elementi nella raccolta. Il compilatore esegue il cast di tipi per l'utente e non è necessario eseguire il cast IEnumerable<ResourceCandidate>
in modo esplicito. Se è necessario eseguire il cast in modo esplicito, ad esempio se si vuole chiamare GetEnumerator, eseguire il cast in IEnumerable<T> con un vincolo ResourceCandidate .
Proprietà
Size |
Ottiene il numero di oggetti ResourceCandidate nel set. |
Metodi
First() |
Restituisce un iteratore per enumerare gli elementi nel set di oggetti ResourceCandidate . |
GetAt(UInt32) |
Restituisce ResourceCandidate nell'indice specificato nel set. |
GetMany(UInt32, ResourceCandidate[]) |
Restituisce gli oggetti ResourceCandidate che iniziano all'indice specificato nel set. |
IndexOf(ResourceCandidate, UInt32) |
Ottiene l'indice di un oggetto ResourceCandidate specificato nel set. |