Comment lier l'image du chemin au bouton, à l'aide de MvxBaseAndroidTargetBinding?Image du chemin du bouton de liaison (Utilisation de MvxBaseAndroidTargetBinding) Android
1) créer une liaison
public class MvxButtonIconBinding: MvxBaseAndroidTargetBinding
{
private readonly View _view;
public MvxButtonIconBinding(View view)
{
_view = view;
}
public override void SetValue(object value)
{
string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
path = Path.Combine(path, "pictures");
path = Path.Combine(path, (string)value);
if (File.Exists(path))
{
var dr = Drawable.CreateFromPath(path);
Button b = _view as Button;
var drawables = b.GetCompoundDrawables();
foreach (var d in drawables)
if (d!=null)
d.Dispose(); // To avoid "out of memory" messages
b.SetCompoundDrawablesWithIntrinsicBounds(null, dr, null, null);
}
else
{
Console.WriteLine("File {0} does not exists", path);
}
}
public override MvxBindingMode DefaultMode
{
get { return MvxBindingMode.OneWay; }
}
public override Type TargetType
{
get { return typeof(string); }
}
protected override void Dispose(bool isDisposing)
{
if (isDisposing)
{
}
base.Dispose(isDisposing);
}
}
2) Configuration de la liaison:
registry.RegisterFactory(new MvxCustomBindingFactory<View>("ButtonIcon", view => new MvxButtonIconBinding(view)));
3) Créer button_list.аxml
<Button
android:id="@+id/ButtonArticle"
android:layout_width="fill_parent"
android:layout_height="160dp"
android:gravity="bottom|center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
local:MvxBind="{'Click':{'Path':'Command1'},'ButtonIcon':{'Path':'Item.PictureFileName'}}"
android:textSize="14dip"
android:textColor="@drawable/ToggleButtonSelector" />
Quel chemin transmet les propriétés PictureFileName? Montre-moi un exemple s'il te plaît.
Si cette explication ne fonctionne pas, alors il pourrait être une bonne idée de poster un projet exemple - par exemple à un dépôt sur GitHub. D'autres peuvent vous aider à déboguer votre projet d'exemple, mais ils n'ont peut-être pas le temps d'écrire un exemple de projet pour vous aider. – Stuart
Je pense peut être utilisé FavoritesButtonBinding. Mais je ne sais pas comment retourner l'identifiant par rapport à ce nom des photos –
Désolé - Je ne pense pas que je peux aider à ce niveau de question - Je ne comprends souvent pas ce que vous demandez. Peut-être essayer de construire au projet de test et de l'afficher sur Github - nous pouvons tous les deux parler le code :) – Stuart