elfenliedtopfan5
Member
- Joined
- Feb 9, 2023
- Messages
- 16
- Programming Experience
- 10+
Good morning,
i am having a little issue here i have created a command that i want to use in 2 different views but unable to seem to find away to do this,
i have done the following that somewhat works,
so this is my downloadvm
and as you can see this sets the download button well test button depending on what value is get from exacuted
the issue i have is i want to use this in the install control as well as if its installed dont want them to download or install it so i have setup the same on install,
as you can see have had to copy over the code and use download to get the button to work,
this does work however dispite me trying to add button text to the disabled button just fails,
and idealy i would not like hacving to copy same command multible times if at all possible
but unsure how to do it on ui
Picture of Both Download and Install
As you can see from top of download view it states already installed,
Install view
trying to get the command to be used across both and to indicate the same Already Installed if it is
kind regards,
Elfenliedtopfan5
i am having a little issue here i have created a command that i want to use in 2 different views but unable to seem to find away to do this,
i have done the following that somewhat works,
so this is my downloadvm
DownloadVM:
private ICommand _Vs2015installed;
public ICommand Vs2015Installed
{
get
{
if (_Vs2015installed == null)
{
_Vs2015installed = new RelayCommand(param => Vs2015Installed_Execute(), x=> Vs2015Installed_CanExecute() );
}
return _Vs2015installed;
}
}
public bool vsisinstalled()
{
if (elfendownload.Versionpy() == String.Empty)
{
return true;
}
return false;
}
public void Vs2015Installed_Execute()
{
Test = spotifydownloader.test;
if (spotifydownloader.test == "True")
{
vsinstalled = true;
vsinstalledstring = "https://aka.ms/vs/17/release/vc_redist.x64.exe";
Test = vsinstalledstring;
ObservableCollection<Clients> MyClients = new ObservableCollection<Clients>();
MyClients.Clear();
cvs.Source = GetData();
}
else
{
vsinstalled = false;
vsinstalledstring = "Already Installed";
Test = vsinstalledstring;
ObservableCollection<Clients> MyClients = new ObservableCollection<Clients>();
MyClients.Clear();
cvs.Source = GetData();
}
}
and as you can see this sets the download button well test button depending on what value is get from exacuted
the issue i have is i want to use this in the install control as well as if its installed dont want them to download or install it so i have setup the same on install,
InstallVM:
DownloadVM downloadModel = new DownloadVM();
public string vstext { get; set; }
public bool isinstalled { get; set; }
public void download()
{
if(downloadModel.VSisalreadyinstalled() == true)
{
isinstalled = true;
}
else
{
isinstalled = false;
}
}
private ICommand _ButtonEnabled;
public ICommand ButtonEnabled
{
get
{
if (_ButtonEnabled == null)
{
_ButtonEnabled = new RelayCommand(param => downloadModel.Vs2015Installed_Execute(), x=> downloadModel.Vs2015Installed_CanExecute());
}
else
{
}
return _ButtonEnabled;
}
}
as you can see have had to copy over the code and use download to get the button to work,
this does work however dispite me trying to add button text to the disabled button just fails,
and idealy i would not like hacving to copy same command multible times if at all possible
but unsure how to do it on ui
Install UI:
<UserControl x:Class="Project_Alicization.View.Install"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Project_Alicization.View"
xmlns:vm="clr-namespace:Project_Alicization.ViewModel"
xmlns:customcommand="clr-namespace:Project_Alicization.Utilitys"
mc:Ignorable="d"
d:DesignHeight="600" d:DesignWidth="622">
<UserControl.DataContext>
<vm:InstallVM/>
</UserControl.DataContext>
<Grid>
<Border CornerRadius="5" >
<Border CornerRadius="0,20,20,0"
BorderThickness="1"
Opacity="0.8">
<Border.Background>
<LinearGradientBrush StartPoint="0,1" EndPoint="1,0">
<GradientStop Color="{StaticResource primaryBackColor1}" Offset="0"/>
<GradientStop Color="{StaticResource primaryBackColor2}" Offset="0.75"/>
</LinearGradientBrush>
</Border.Background>
</Border>
</Border>
<StackPanel Orientation="Vertical"
Width="300"
Height="500">
<Button x:Name="vsinstall" Content="{Binding vstext}"
Margin="4"
Height="20"
Command="{Binding ButtonEnabled}"/>
</StackPanel>
</Grid>
</UserControl>
Picture of Both Download and Install
As you can see from top of download view it states already installed,
Install view
trying to get the command to be used across both and to indicate the same Already Installed if it is
kind regards,
Elfenliedtopfan5