Geçen iki komut parametreleri bir WPF binding kullanarak
XAML dosyası aşağıdaki standart sözdizimini kullanarak idam ediyorum ki bir komut var:
<Button Content="Zoom" Command="{Binding MyViewModel.ZoomCommand}"/>
Bu sırada görünümünden İKİ parça bilgi bu işlem kullanıcıların beklediği şekilde (tuval specfically genişlik ve yükseklik) tamamlamak için ihtiyacım olduğunu fark edene kadar gayet güzel çalıştı.
Mümkün benim komut için bir argüman olarak bir dizi geçmek gibi görünüyor, ama orada CommandParameter iki tuval ... ... özellikler için bağlayıcı belirtmek için bir yol olarak görmüyorum:
<Button Content="Zoom"
Command="{Binding MyViewModel.ZoomCommand"
CommandParameter={Binding ElementName=MyCanvas, Path=Width}"/>
Nasıl benim komut için hem Genişlik ve Yükseklik geçtim mi? Bu XAML komutları kullanarak mümkün gibi görünmüyor ve benim codebehind tıklatın işleyicisi bu bilgi benim yöntemi zoom geçirmek için kablo gerekiyor.
CEVAP
Genellikle bu Bilgi olurdu MVVM yapıyorsan öncelikle, ayrı özellikleri üzerinden VM için kullanılabilir görünümünden bağlı. Herhangi bir parametre geçmek için komutları zorunda kaydeder.
Ancak, da-bağlama çoklu ve parametreleri oluşturmak için bir dönüştürücü kullanabilirsiniz:
<Button Content="Zoom" Command="{Binding MyViewModel.ZoomCommand" CommandParameter={Binding ElementName=MyCanvas, Path=Width}"
<Button.CommandParameter>
<MultiBinding Converter="{StaticResource YourConverter}">
<Binding Path="Width" ElementName="MyCanvas"/>
<Binding Path="Height" ElementName="MyCanvas"/>
</MultiBinding>
</Button.CommandParameter>
</Button>
Dönüştürücü:
public class YourConverter : IMultiValueConverter
{
public object Convert(object[] values, ...)
{
return values.Clone();
}
...
}
Daha sonra komut çalıştırma mantığı
public void OnExecute(object parameter)
{
var values = (object[])parameter;
var width = (double)values[0];
var height = (double)values[1];
}
DOS kullanarak "Başlat" para...
Toplu iş parametreleri kullanarak DOS ...
Nasıl bir toplu iş dosyası komut satır...
Komut satırı ile hata ayıklama Visual ...
Nasıl bir dosya adı kullanarak uygun b...