Мне нужна помощь, и я надеюсь, что вы можете мне помочь. У меня есть сложный usercontrol с методом, который изменяет цвет всех элементов внутри. Когда я пытаюсь подключить его с помощью заглушки метода в MainWindow-Code-behind, я могу легко запустить его. Я хочу использовать MVVM в будущем, так что теперь я хочу подключить его к кнопке в главном окне с помощью команд.Использование команд для запуска метода usercontrol
Так вот мой ViewModel и мой MainWindow.cs
public class ViewModel
{
public DelegateCommands TestCommand { get; private set; }
public ViewModel()
{
TestCommand = new DelegateCommands(OnExecute, CanExecute);
}
bool CanExecute(object parameter)
{
return true;
}
void OnExecute()
{
//testUC.NewColor(); HERE I WANT TO START THE UC-METHOD
}
}
public partial class MainWindow : Window
{
ViewModel _ViewModel = null;
public plate tplate;
public MainWindow()
{
InitializeComponent();
_ViewModel = new ViewModel();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
tplate = new plate();
}
}
На моем MainWindow-View У меня есть простая кнопка и UserControl.
<exte:plate x:Name="testUC" Grid.Column="1"/>
<Button Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="43,247,0,0" Command="{Binding TestCommand}"/>
Я хочу, чтобы запустить UC-метода в OnExecute() - метод, но я не в состоянии выбрать «testUC», потому что он не доступен в этом контексте.
Есть ли простой способ запуска UC-Методов посредством связывания команд?
Спасибо за любую помощь.
Timo
Поскольку цвета являются визуальным внешним видом, нет причин поместить эту логику в виртуальную машину. Таким образом, вы можете придерживаться своего подхода, если вы сможете его запустить. – DHN
Спасибо за ваш ответ. Это даже не цвет, он используется для смещения и других методов. Я хочу запустить его с помощью кнопки devexpress-ribbonbutton (без каких-либо щелчков или похожих событий), поэтому мне нужен командный путь. – csharper1981
Похоже, вы внедряете 'CustomControl'. Обычно вы реализуете такие вещи в коде, который находится за элементом управления. Тем не менее, вы можете использовать подход «ICommand», привязавшись к элементу управления. – DHN