私はMVVMCrossの私のドロイドプロジェクトで自分のtextviewのためのカウントダウンタイマーを作成したいと思います。カウントダウンMVVMCross with Xamarin Android
私はSystem.Threading.Timerを使用することはできませんので、私はこのソリューションで少し問題を抱えているので、私は自分のクラスを作成する必要があります。
しかし、私自身のクラスは、ビジネスプロジェクトでなければなりません、ので、私は、方法がわからないと、このクラスは私のUIプロジェクトと私の.Coreプロジェクトと呼ばれなければなりません...
あなたは私を助けることができますか?
は、私はこれを作った
ありがとうございますが、動作していない:SelfieBox.Businessで TimerCustomクラス
public class TimerCustom
{
private int _valueOfTimer;
private bool _timerRunning;
public int ValueOfTimer
{
get { return _valueOfTimer; }
set { _valueOfTimer = value; }
}
public TimerCustom(int valueOfTimer)
{
_valueOfTimer = valueOfTimer;
}
public async Task<TimerCustom> Start()
{
if (!_timerRunning)
{
_timerRunning = true;
await RunTimer();
}
return this;
}
private async Task RunTimer()
{
while (_timerRunning && _valueOfTimer > 0)
{
await Task.Delay(1);
_valueOfTimer--;
if (_valueOfTimer == 0)
{
_timerRunning = false;
}
}
}
}
のViewModelをSelfieBox.Coreに:
public class SecondStep_Photo_ViewModel : MvxViewModel
{
private Business.Models.TimerCustom _timerCustom;
#region Prop => Value Of Timer
private int _valueOfTimer;
public int ValueOfTimer
{
get { return _valueOfTimer; }
set { _valueOfTimer = value; }
}
#endregion
public SecondStep_Photo_ViewModel()
{
_timerCustom = new Business.Models.TimerCustom(5);
_timerCustom.Start();
ValueOfTimer = _timerCustom.ValueOfTimer;
}
}
そして私の見解でSelfieBox.Droid:
...<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/TxtTimer"
android:textSize="200dp"
android:textStyle="bold"
android:gravity="center"
android:visible="false"
android:layout_centerInParent="true"
local:MvxBind="Text ValueOfTimer; Visible DisplayTimer"/>
タイマーがうまく機能しなくなりましたが、画面に表示されません
仕事が素敵です!本当にありがとう、チーズバロン! –