.NET MAUI Bindung an GraphicsViewC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 .NET MAUI Bindung an GraphicsView

Post by Anonymous »

Ich habe Probleme, zu verstehen, wie Bindung in .NET MAUI funktioniert. Mein Ziel ist es, zwei Möglichkeiten zu haben, eine Punktzahl in einem CollectionView anzuzeigen, ein Etikett mit der Zahl und eine grafische Darstellung. Die Bindung der Punktzahl an das Etikett funktioniert einfach gut, aber die Bindung an das Zeichbare nicht. Wenn ich eine Nummer schreibe, anstatt eine Bindung zu verwenden, wird sie gut übergeben. < /P>
Was mache ich falsch?

Code: Select all














































< /code>
Scoregaugedrawable.cs
namespace MediSkillApp.Drawables;

public class ScoreGaugeDrawable : BindableObject, IDrawable
{
public static readonly BindableProperty ScoreProperty = BindableProperty.Create(nameof(Score),
typeof(double),
typeof(ScoreGaugeDrawable));

public double Score {
get => (double)GetValue(ScoreProperty);
set => SetValue(ScoreProperty, value);
}

public void Draw(ICanvas canvas, RectF dirtyRect)
{
var centerPoint = new PointF(32, 0);
var circleRadius = 5;

canvas.FillColor = Colors.Black;
canvas.FillCircle(centerPoint, circleRadius);

canvas.StrokeColor = Colors.Black;
canvas.DrawLine(centerPoint, new Point(0, Score * 10)); //Just draw something for testing
}
}
< /code>
 procedure.cs
namespace MediSkillApp.Model;

public class Procedure
{
public string Identifier { get; set; }
public DateTime Date { get; set; }
public string GetDate {
get => Date.ToString("d/M-yyyy");
}

public int ProcedureType { get; set; }
public string ProcedureTypeString { get; set; }
public double AvgScore { get; set; }

public string GetAvgScore {
get {
if (AvgScore == 0) return "";
return AvgScore.ToString();
}
}

public int OpRole { get; set; }
public string OpRoleString { get; set; }

public string Icon {
get {
switch (ProcedureType) {
case 7:
return Icons.IconBleed;
case 8:
return Icons.IconTEA;
case 18:
return Icons.IconTEA;
default:
return Icons.IconSurgery;
}
}
}

public bool IsScored => AvgScore > 0;
}
< /code>
 ProceduresViewModel.cs
using MediSkillApp.Model;
using MediSkillApp.Services;

namespace MediSkillApp.ViewModel;

public partial class ProceduresViewModel : BaseViewModel
{
public ObservableCollection Procedures { get;  } = new();
private APIService APIservice;

public ProceduresViewModel(APIService aPIservice) {
APIservice = aPIservice;
}

[RelayCommand]
public async Task GetProceduresAsync() {
if(IsBusy) return;

try {
IsBusy = true;
var procedures = await APIservice.GetProceduresAsync("8", "dawda", Procedures.Count, 15);

foreach (Procedure procedure in procedures) {
Procedures.Add(procedure);
}
} catch(Exception ex) {
Debug.WriteLine(ex);
} finally {
IsBusy = false;
}
}

public void ClearProcedures() {
Procedures.Clear();
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post