ビューまたは別のクラスのインターフェイスを継承する:WPFは、私はメディアプレーヤープログラムを作ってるんだと私は次のインターフェイス持って
public interface IMediaService
{
void Play();
}
MediaElement
コントロールビューでインターフェースを継承するために、より適切であろうが存在および方法の実装に直接アクセスするか、むしろこのような別のクラスにそれを持っている:
public class MediaPlayer : IMediaService
{
private MediaElement _mediaElement;
public MediaPlayer(MediaElement mediaElement)
{
_mediaElement = mediaElement;
}
public void Play()
{
_mediaElement.Play();
//...
}
}
ビューで継承対:
public partial class MainWindow : IMediaService
{
public MainWindow()
{
InitializeComponent();
}
void IMediaService.Play()
{
Player.Play();
//..
}
}
私はMVVMを使用していませんが、これらのメソッドはコマンドによるバインディングとして使用できます。
私が2番目のアプローチで見られる問題は、私のビュークラスが本当に素早く詰まってしまうことです。
私が言及していない代替ソリューションには開いていますが、これは私がatmで思いついたものです。
メインウィンドウにメディアプレーヤーを操作する責任を負うべきではないため、最初のアプローチで進む方が良いです。それは別にそれを保つのが良い。 – Parag
_「MVVMを使用していません」_ WPFで適切なイディオムを使用しないことに困惑していますが、インターフェイスを実装するクラスについてのStack Overflowユーザーの_opinions_が単一のウィット。 –
@PeterDunihoあなたのコメントのポイントが表示されません。あなたがここにいれば、ちょっとニブルにしてください。 – Deadzone