How to open new modal dialog using prism in wpf

Multi tool use
Multi tool use












1















I have done opening the modal dialog in Wpf MVVM. But I am new to prism. I have tried the following code in MVVM. Now its working fine. But I want to do the same concept using prism with ribbon window. In the below code I have not used ribbon window, instead of ribbon window I used the button. please refer the below code,



MainWindow.xaml



   <Window.Resources>
<DataTemplate DataType="{x:Type vm:ModalDialogViewModel}">
<view:ModalDialog />
</DataTemplate>
</Window.Resources>

<Grid>
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Center">
<Grid>
<Button
Width="150"
Height="25"
Margin="0,10,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Command="{Binding Path=LoadViewCommand}"
Content="Show Modal Dialog" />
</Grid>
</Grid>

<Grid Visibility="{Binding IsCloseModalWindow, Converter={StaticResource BooleanToVisibilityConverter}}">
<Border Background="#90000000">
<Border
HorizontalAlignment="Center"
VerticalAlignment="Center"
Background="White"
BorderBrush="Transparent"
BorderThickness="0"
CornerRadius="0">
<Border.BitmapEffect>
<DropShadowBitmapEffect
Direction="270"
Opacity="0.5"
ShadowDepth="0.7"
Color="Black" />
</Border.BitmapEffect>

<ContentControl Content="{Binding Path=CurrentViewModel}" />
</Border>
</Border>
</Grid>
</Grid>


MainWindowViewModel



public class MainWindowViewModel : ViewModelBase, ICloseWindow
{
private ICommand loadViewCommand;

private ViewModelBase _currentViewModel;

public ViewModelBase CurrentViewModel
{
get { return _currentViewModel; }
set
{
_currentViewModel = value;
this.OnPropertyChanged("CurrentViewModel");
}
}

private bool isCloseModalWindow = false;

public bool IsCloseModalWindow
{
get { return isCloseModalWindow; }
set { isCloseModalWindow = value; OnPropertyChanged("IsCloseModalWindow"); }
}


public MainWindowViewModel()
{

}

public ICommand LoadViewCommand => loadViewCommand ?? (loadViewCommand = new RelayCommand(showView, canShowView));

private void showView(object obj)
{
IsCloseModalWindow = true;

CurrentViewModel = new ModalDialogViewModel(new ModalDialogModel() { Name = "New Modal Window" }, this);
}

private bool canShowView(object obj)
{
return true;
}

public void closeWindow()
{
IsCloseModalWindow = false;
}
}


ModalDialog



<Grid MinWidth="300" Background="White">

<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<Grid
Grid.Row="0"
MinHeight="30"
Background="SkyBlue">

<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<Button
Grid.Column="1"
Width="40"
Height="25"
Content="X"
BorderThickness="0"
Background="Transparent"
Foreground="White"
Margin="0,0,5,0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Command="{Binding CancelCommand}"
CommandParameter="{Binding ElementName=modalDialog}"
ToolTip="Close" />
</Grid>
</Grid>

<Grid Grid.Row="1" Margin="15">

<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<Label
Grid.Row="0"
Grid.Column="0"
Content="Name"
Style="{StaticResource commonMargin}" />
<Label
Grid.Row="0"
Grid.Column="1"
Content=":"
Style="{StaticResource commonMargin}" />
<TextBox
Grid.Row="0"
Grid.Column="2"
Width="100"
Text="{Binding Path=Name}"
Style="{StaticResource commonTimerMargin}" />


</Grid>

<Grid
Grid.Row="2"
Margin="0,0,15,10"
HorizontalAlignment="Right">

<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

<Button
Grid.Column="0"
Width="80"
Height="30"
Margin="0,0,10,0"
Background="White"
Command="{Binding CancelCommand}"
CommandParameter="{Binding ElementName=modalDialog}"
Content="CANCEL" />
<Button
Grid.Column="1"
Width="80"
Height="30"
Background="SkyBlue"
Command="{Binding ApplyCommand}"
CommandParameter="{Binding ElementName=modalDialog}"
Content="APPLY"
Foreground="White" />

</Grid>
</Grid>


ModalDialogViewModel



    public class ModalDialogViewModel : ViewModelBase
{
private ICommand cancelCommand;
public ModalDialogModel Model { get; private set; }
private ICloseWindow _closeWindow;

public ModalDialogViewModel(ModalDialogModel modalDialogModel, ICloseWindow closeWindow)
{
this.Model = modalDialogModel;
this._closeWindow = closeWindow;
}

public ICommand CancelCommand => cancelCommand ?? (cancelCommand = new RelayCommand(CloseWindow, CanCloseWindow));

private void CloseWindow(object obj)
{
_closeWindow.closeWindow();
}

private bool CanCloseWindow(object obj)
{
return true;
}
}


My Requirement is when user click the ribbon window button the modal dialog is open. The Shell window is a ribbon window. I have added HomeTab module and many other modules as separate class library.










share|improve this question























  • What exactly is the question here?

    – Haukinger
    Aug 2 '18 at 11:16











  • @Haukinger, I want to open the modal dialog when user click the ribbon window tab button using prism. The Shell window as Ribbon window. I have set Ribbon Tab as separate module. The above code is done only in MVVM.

    – Achu_L
    Aug 2 '18 at 11:26


















1















I have done opening the modal dialog in Wpf MVVM. But I am new to prism. I have tried the following code in MVVM. Now its working fine. But I want to do the same concept using prism with ribbon window. In the below code I have not used ribbon window, instead of ribbon window I used the button. please refer the below code,



MainWindow.xaml



   <Window.Resources>
<DataTemplate DataType="{x:Type vm:ModalDialogViewModel}">
<view:ModalDialog />
</DataTemplate>
</Window.Resources>

<Grid>
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Center">
<Grid>
<Button
Width="150"
Height="25"
Margin="0,10,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Command="{Binding Path=LoadViewCommand}"
Content="Show Modal Dialog" />
</Grid>
</Grid>

<Grid Visibility="{Binding IsCloseModalWindow, Converter={StaticResource BooleanToVisibilityConverter}}">
<Border Background="#90000000">
<Border
HorizontalAlignment="Center"
VerticalAlignment="Center"
Background="White"
BorderBrush="Transparent"
BorderThickness="0"
CornerRadius="0">
<Border.BitmapEffect>
<DropShadowBitmapEffect
Direction="270"
Opacity="0.5"
ShadowDepth="0.7"
Color="Black" />
</Border.BitmapEffect>

<ContentControl Content="{Binding Path=CurrentViewModel}" />
</Border>
</Border>
</Grid>
</Grid>


MainWindowViewModel



public class MainWindowViewModel : ViewModelBase, ICloseWindow
{
private ICommand loadViewCommand;

private ViewModelBase _currentViewModel;

public ViewModelBase CurrentViewModel
{
get { return _currentViewModel; }
set
{
_currentViewModel = value;
this.OnPropertyChanged("CurrentViewModel");
}
}

private bool isCloseModalWindow = false;

public bool IsCloseModalWindow
{
get { return isCloseModalWindow; }
set { isCloseModalWindow = value; OnPropertyChanged("IsCloseModalWindow"); }
}


public MainWindowViewModel()
{

}

public ICommand LoadViewCommand => loadViewCommand ?? (loadViewCommand = new RelayCommand(showView, canShowView));

private void showView(object obj)
{
IsCloseModalWindow = true;

CurrentViewModel = new ModalDialogViewModel(new ModalDialogModel() { Name = "New Modal Window" }, this);
}

private bool canShowView(object obj)
{
return true;
}

public void closeWindow()
{
IsCloseModalWindow = false;
}
}


ModalDialog



<Grid MinWidth="300" Background="White">

<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<Grid
Grid.Row="0"
MinHeight="30"
Background="SkyBlue">

<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<Button
Grid.Column="1"
Width="40"
Height="25"
Content="X"
BorderThickness="0"
Background="Transparent"
Foreground="White"
Margin="0,0,5,0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Command="{Binding CancelCommand}"
CommandParameter="{Binding ElementName=modalDialog}"
ToolTip="Close" />
</Grid>
</Grid>

<Grid Grid.Row="1" Margin="15">

<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<Label
Grid.Row="0"
Grid.Column="0"
Content="Name"
Style="{StaticResource commonMargin}" />
<Label
Grid.Row="0"
Grid.Column="1"
Content=":"
Style="{StaticResource commonMargin}" />
<TextBox
Grid.Row="0"
Grid.Column="2"
Width="100"
Text="{Binding Path=Name}"
Style="{StaticResource commonTimerMargin}" />


</Grid>

<Grid
Grid.Row="2"
Margin="0,0,15,10"
HorizontalAlignment="Right">

<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

<Button
Grid.Column="0"
Width="80"
Height="30"
Margin="0,0,10,0"
Background="White"
Command="{Binding CancelCommand}"
CommandParameter="{Binding ElementName=modalDialog}"
Content="CANCEL" />
<Button
Grid.Column="1"
Width="80"
Height="30"
Background="SkyBlue"
Command="{Binding ApplyCommand}"
CommandParameter="{Binding ElementName=modalDialog}"
Content="APPLY"
Foreground="White" />

</Grid>
</Grid>


ModalDialogViewModel



    public class ModalDialogViewModel : ViewModelBase
{
private ICommand cancelCommand;
public ModalDialogModel Model { get; private set; }
private ICloseWindow _closeWindow;

public ModalDialogViewModel(ModalDialogModel modalDialogModel, ICloseWindow closeWindow)
{
this.Model = modalDialogModel;
this._closeWindow = closeWindow;
}

public ICommand CancelCommand => cancelCommand ?? (cancelCommand = new RelayCommand(CloseWindow, CanCloseWindow));

private void CloseWindow(object obj)
{
_closeWindow.closeWindow();
}

private bool CanCloseWindow(object obj)
{
return true;
}
}


My Requirement is when user click the ribbon window button the modal dialog is open. The Shell window is a ribbon window. I have added HomeTab module and many other modules as separate class library.










share|improve this question























  • What exactly is the question here?

    – Haukinger
    Aug 2 '18 at 11:16











  • @Haukinger, I want to open the modal dialog when user click the ribbon window tab button using prism. The Shell window as Ribbon window. I have set Ribbon Tab as separate module. The above code is done only in MVVM.

    – Achu_L
    Aug 2 '18 at 11:26
















1












1








1


1






I have done opening the modal dialog in Wpf MVVM. But I am new to prism. I have tried the following code in MVVM. Now its working fine. But I want to do the same concept using prism with ribbon window. In the below code I have not used ribbon window, instead of ribbon window I used the button. please refer the below code,



MainWindow.xaml



   <Window.Resources>
<DataTemplate DataType="{x:Type vm:ModalDialogViewModel}">
<view:ModalDialog />
</DataTemplate>
</Window.Resources>

<Grid>
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Center">
<Grid>
<Button
Width="150"
Height="25"
Margin="0,10,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Command="{Binding Path=LoadViewCommand}"
Content="Show Modal Dialog" />
</Grid>
</Grid>

<Grid Visibility="{Binding IsCloseModalWindow, Converter={StaticResource BooleanToVisibilityConverter}}">
<Border Background="#90000000">
<Border
HorizontalAlignment="Center"
VerticalAlignment="Center"
Background="White"
BorderBrush="Transparent"
BorderThickness="0"
CornerRadius="0">
<Border.BitmapEffect>
<DropShadowBitmapEffect
Direction="270"
Opacity="0.5"
ShadowDepth="0.7"
Color="Black" />
</Border.BitmapEffect>

<ContentControl Content="{Binding Path=CurrentViewModel}" />
</Border>
</Border>
</Grid>
</Grid>


MainWindowViewModel



public class MainWindowViewModel : ViewModelBase, ICloseWindow
{
private ICommand loadViewCommand;

private ViewModelBase _currentViewModel;

public ViewModelBase CurrentViewModel
{
get { return _currentViewModel; }
set
{
_currentViewModel = value;
this.OnPropertyChanged("CurrentViewModel");
}
}

private bool isCloseModalWindow = false;

public bool IsCloseModalWindow
{
get { return isCloseModalWindow; }
set { isCloseModalWindow = value; OnPropertyChanged("IsCloseModalWindow"); }
}


public MainWindowViewModel()
{

}

public ICommand LoadViewCommand => loadViewCommand ?? (loadViewCommand = new RelayCommand(showView, canShowView));

private void showView(object obj)
{
IsCloseModalWindow = true;

CurrentViewModel = new ModalDialogViewModel(new ModalDialogModel() { Name = "New Modal Window" }, this);
}

private bool canShowView(object obj)
{
return true;
}

public void closeWindow()
{
IsCloseModalWindow = false;
}
}


ModalDialog



<Grid MinWidth="300" Background="White">

<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<Grid
Grid.Row="0"
MinHeight="30"
Background="SkyBlue">

<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<Button
Grid.Column="1"
Width="40"
Height="25"
Content="X"
BorderThickness="0"
Background="Transparent"
Foreground="White"
Margin="0,0,5,0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Command="{Binding CancelCommand}"
CommandParameter="{Binding ElementName=modalDialog}"
ToolTip="Close" />
</Grid>
</Grid>

<Grid Grid.Row="1" Margin="15">

<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<Label
Grid.Row="0"
Grid.Column="0"
Content="Name"
Style="{StaticResource commonMargin}" />
<Label
Grid.Row="0"
Grid.Column="1"
Content=":"
Style="{StaticResource commonMargin}" />
<TextBox
Grid.Row="0"
Grid.Column="2"
Width="100"
Text="{Binding Path=Name}"
Style="{StaticResource commonTimerMargin}" />


</Grid>

<Grid
Grid.Row="2"
Margin="0,0,15,10"
HorizontalAlignment="Right">

<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

<Button
Grid.Column="0"
Width="80"
Height="30"
Margin="0,0,10,0"
Background="White"
Command="{Binding CancelCommand}"
CommandParameter="{Binding ElementName=modalDialog}"
Content="CANCEL" />
<Button
Grid.Column="1"
Width="80"
Height="30"
Background="SkyBlue"
Command="{Binding ApplyCommand}"
CommandParameter="{Binding ElementName=modalDialog}"
Content="APPLY"
Foreground="White" />

</Grid>
</Grid>


ModalDialogViewModel



    public class ModalDialogViewModel : ViewModelBase
{
private ICommand cancelCommand;
public ModalDialogModel Model { get; private set; }
private ICloseWindow _closeWindow;

public ModalDialogViewModel(ModalDialogModel modalDialogModel, ICloseWindow closeWindow)
{
this.Model = modalDialogModel;
this._closeWindow = closeWindow;
}

public ICommand CancelCommand => cancelCommand ?? (cancelCommand = new RelayCommand(CloseWindow, CanCloseWindow));

private void CloseWindow(object obj)
{
_closeWindow.closeWindow();
}

private bool CanCloseWindow(object obj)
{
return true;
}
}


My Requirement is when user click the ribbon window button the modal dialog is open. The Shell window is a ribbon window. I have added HomeTab module and many other modules as separate class library.










share|improve this question














I have done opening the modal dialog in Wpf MVVM. But I am new to prism. I have tried the following code in MVVM. Now its working fine. But I want to do the same concept using prism with ribbon window. In the below code I have not used ribbon window, instead of ribbon window I used the button. please refer the below code,



MainWindow.xaml



   <Window.Resources>
<DataTemplate DataType="{x:Type vm:ModalDialogViewModel}">
<view:ModalDialog />
</DataTemplate>
</Window.Resources>

<Grid>
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Center">
<Grid>
<Button
Width="150"
Height="25"
Margin="0,10,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Command="{Binding Path=LoadViewCommand}"
Content="Show Modal Dialog" />
</Grid>
</Grid>

<Grid Visibility="{Binding IsCloseModalWindow, Converter={StaticResource BooleanToVisibilityConverter}}">
<Border Background="#90000000">
<Border
HorizontalAlignment="Center"
VerticalAlignment="Center"
Background="White"
BorderBrush="Transparent"
BorderThickness="0"
CornerRadius="0">
<Border.BitmapEffect>
<DropShadowBitmapEffect
Direction="270"
Opacity="0.5"
ShadowDepth="0.7"
Color="Black" />
</Border.BitmapEffect>

<ContentControl Content="{Binding Path=CurrentViewModel}" />
</Border>
</Border>
</Grid>
</Grid>


MainWindowViewModel



public class MainWindowViewModel : ViewModelBase, ICloseWindow
{
private ICommand loadViewCommand;

private ViewModelBase _currentViewModel;

public ViewModelBase CurrentViewModel
{
get { return _currentViewModel; }
set
{
_currentViewModel = value;
this.OnPropertyChanged("CurrentViewModel");
}
}

private bool isCloseModalWindow = false;

public bool IsCloseModalWindow
{
get { return isCloseModalWindow; }
set { isCloseModalWindow = value; OnPropertyChanged("IsCloseModalWindow"); }
}


public MainWindowViewModel()
{

}

public ICommand LoadViewCommand => loadViewCommand ?? (loadViewCommand = new RelayCommand(showView, canShowView));

private void showView(object obj)
{
IsCloseModalWindow = true;

CurrentViewModel = new ModalDialogViewModel(new ModalDialogModel() { Name = "New Modal Window" }, this);
}

private bool canShowView(object obj)
{
return true;
}

public void closeWindow()
{
IsCloseModalWindow = false;
}
}


ModalDialog



<Grid MinWidth="300" Background="White">

<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<Grid
Grid.Row="0"
MinHeight="30"
Background="SkyBlue">

<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<Button
Grid.Column="1"
Width="40"
Height="25"
Content="X"
BorderThickness="0"
Background="Transparent"
Foreground="White"
Margin="0,0,5,0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Command="{Binding CancelCommand}"
CommandParameter="{Binding ElementName=modalDialog}"
ToolTip="Close" />
</Grid>
</Grid>

<Grid Grid.Row="1" Margin="15">

<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<Label
Grid.Row="0"
Grid.Column="0"
Content="Name"
Style="{StaticResource commonMargin}" />
<Label
Grid.Row="0"
Grid.Column="1"
Content=":"
Style="{StaticResource commonMargin}" />
<TextBox
Grid.Row="0"
Grid.Column="2"
Width="100"
Text="{Binding Path=Name}"
Style="{StaticResource commonTimerMargin}" />


</Grid>

<Grid
Grid.Row="2"
Margin="0,0,15,10"
HorizontalAlignment="Right">

<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

<Button
Grid.Column="0"
Width="80"
Height="30"
Margin="0,0,10,0"
Background="White"
Command="{Binding CancelCommand}"
CommandParameter="{Binding ElementName=modalDialog}"
Content="CANCEL" />
<Button
Grid.Column="1"
Width="80"
Height="30"
Background="SkyBlue"
Command="{Binding ApplyCommand}"
CommandParameter="{Binding ElementName=modalDialog}"
Content="APPLY"
Foreground="White" />

</Grid>
</Grid>


ModalDialogViewModel



    public class ModalDialogViewModel : ViewModelBase
{
private ICommand cancelCommand;
public ModalDialogModel Model { get; private set; }
private ICloseWindow _closeWindow;

public ModalDialogViewModel(ModalDialogModel modalDialogModel, ICloseWindow closeWindow)
{
this.Model = modalDialogModel;
this._closeWindow = closeWindow;
}

public ICommand CancelCommand => cancelCommand ?? (cancelCommand = new RelayCommand(CloseWindow, CanCloseWindow));

private void CloseWindow(object obj)
{
_closeWindow.closeWindow();
}

private bool CanCloseWindow(object obj)
{
return true;
}
}


My Requirement is when user click the ribbon window button the modal dialog is open. The Shell window is a ribbon window. I have added HomeTab module and many other modules as separate class library.







c# wpf xaml mvvm prism






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Aug 2 '18 at 10:35









Achu_LAchu_L

848




848













  • What exactly is the question here?

    – Haukinger
    Aug 2 '18 at 11:16











  • @Haukinger, I want to open the modal dialog when user click the ribbon window tab button using prism. The Shell window as Ribbon window. I have set Ribbon Tab as separate module. The above code is done only in MVVM.

    – Achu_L
    Aug 2 '18 at 11:26





















  • What exactly is the question here?

    – Haukinger
    Aug 2 '18 at 11:16











  • @Haukinger, I want to open the modal dialog when user click the ribbon window tab button using prism. The Shell window as Ribbon window. I have set Ribbon Tab as separate module. The above code is done only in MVVM.

    – Achu_L
    Aug 2 '18 at 11:26



















What exactly is the question here?

– Haukinger
Aug 2 '18 at 11:16





What exactly is the question here?

– Haukinger
Aug 2 '18 at 11:16













@Haukinger, I want to open the modal dialog when user click the ribbon window tab button using prism. The Shell window as Ribbon window. I have set Ribbon Tab as separate module. The above code is done only in MVVM.

– Achu_L
Aug 2 '18 at 11:26







@Haukinger, I want to open the modal dialog when user click the ribbon window tab button using prism. The Shell window as Ribbon window. I have set Ribbon Tab as separate module. The above code is done only in MVVM.

– Achu_L
Aug 2 '18 at 11:26














1 Answer
1






active

oldest

votes


















1














You can do it like this in .xaml:



xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:prism="http://prismlibrary.com/"

<i:Interaction.Triggers>
<prism:InteractionRequestTrigger SourceObject="{Binding PopUpDialogActionBinding}"> '<-- Here is your action binding
<prism:PopupWindowAction IsModal="True" CenterOverAssociatedObject="False">
<prism:PopupWindowAction.WindowStyle>
<Style TargetType="Window">
<Setter Property="Icon" Value="IconPath"/>
<Setter Property="Height" Value="400"/>
<Setter Property="Width" Value="400"/>
</Style>
</prism:PopupWindowAction.WindowStyle>
<prism:PopupWindowAction.WindowContent>
<views:YourCustomView /> ' <--- Put your view into the dialog
</prism:PopupWindowAction.WindowContent>
</prism:PopupWindowAction>
</prism:InteractionRequestTrigger>
</i:Interaction.Triggers>

<Grid>
...
</Grid>


I did it as in the example 28:



https://github.com/PrismLibrary/Prism-Samples-Wpf






share|improve this answer

























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f51651464%2fhow-to-open-new-modal-dialog-using-prism-in-wpf%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    You can do it like this in .xaml:



    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    xmlns:prism="http://prismlibrary.com/"

    <i:Interaction.Triggers>
    <prism:InteractionRequestTrigger SourceObject="{Binding PopUpDialogActionBinding}"> '<-- Here is your action binding
    <prism:PopupWindowAction IsModal="True" CenterOverAssociatedObject="False">
    <prism:PopupWindowAction.WindowStyle>
    <Style TargetType="Window">
    <Setter Property="Icon" Value="IconPath"/>
    <Setter Property="Height" Value="400"/>
    <Setter Property="Width" Value="400"/>
    </Style>
    </prism:PopupWindowAction.WindowStyle>
    <prism:PopupWindowAction.WindowContent>
    <views:YourCustomView /> ' <--- Put your view into the dialog
    </prism:PopupWindowAction.WindowContent>
    </prism:PopupWindowAction>
    </prism:InteractionRequestTrigger>
    </i:Interaction.Triggers>

    <Grid>
    ...
    </Grid>


    I did it as in the example 28:



    https://github.com/PrismLibrary/Prism-Samples-Wpf






    share|improve this answer






























      1














      You can do it like this in .xaml:



      xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
      xmlns:prism="http://prismlibrary.com/"

      <i:Interaction.Triggers>
      <prism:InteractionRequestTrigger SourceObject="{Binding PopUpDialogActionBinding}"> '<-- Here is your action binding
      <prism:PopupWindowAction IsModal="True" CenterOverAssociatedObject="False">
      <prism:PopupWindowAction.WindowStyle>
      <Style TargetType="Window">
      <Setter Property="Icon" Value="IconPath"/>
      <Setter Property="Height" Value="400"/>
      <Setter Property="Width" Value="400"/>
      </Style>
      </prism:PopupWindowAction.WindowStyle>
      <prism:PopupWindowAction.WindowContent>
      <views:YourCustomView /> ' <--- Put your view into the dialog
      </prism:PopupWindowAction.WindowContent>
      </prism:PopupWindowAction>
      </prism:InteractionRequestTrigger>
      </i:Interaction.Triggers>

      <Grid>
      ...
      </Grid>


      I did it as in the example 28:



      https://github.com/PrismLibrary/Prism-Samples-Wpf






      share|improve this answer




























        1












        1








        1







        You can do it like this in .xaml:



        xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
        xmlns:prism="http://prismlibrary.com/"

        <i:Interaction.Triggers>
        <prism:InteractionRequestTrigger SourceObject="{Binding PopUpDialogActionBinding}"> '<-- Here is your action binding
        <prism:PopupWindowAction IsModal="True" CenterOverAssociatedObject="False">
        <prism:PopupWindowAction.WindowStyle>
        <Style TargetType="Window">
        <Setter Property="Icon" Value="IconPath"/>
        <Setter Property="Height" Value="400"/>
        <Setter Property="Width" Value="400"/>
        </Style>
        </prism:PopupWindowAction.WindowStyle>
        <prism:PopupWindowAction.WindowContent>
        <views:YourCustomView /> ' <--- Put your view into the dialog
        </prism:PopupWindowAction.WindowContent>
        </prism:PopupWindowAction>
        </prism:InteractionRequestTrigger>
        </i:Interaction.Triggers>

        <Grid>
        ...
        </Grid>


        I did it as in the example 28:



        https://github.com/PrismLibrary/Prism-Samples-Wpf






        share|improve this answer















        You can do it like this in .xaml:



        xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
        xmlns:prism="http://prismlibrary.com/"

        <i:Interaction.Triggers>
        <prism:InteractionRequestTrigger SourceObject="{Binding PopUpDialogActionBinding}"> '<-- Here is your action binding
        <prism:PopupWindowAction IsModal="True" CenterOverAssociatedObject="False">
        <prism:PopupWindowAction.WindowStyle>
        <Style TargetType="Window">
        <Setter Property="Icon" Value="IconPath"/>
        <Setter Property="Height" Value="400"/>
        <Setter Property="Width" Value="400"/>
        </Style>
        </prism:PopupWindowAction.WindowStyle>
        <prism:PopupWindowAction.WindowContent>
        <views:YourCustomView /> ' <--- Put your view into the dialog
        </prism:PopupWindowAction.WindowContent>
        </prism:PopupWindowAction>
        </prism:InteractionRequestTrigger>
        </i:Interaction.Triggers>

        <Grid>
        ...
        </Grid>


        I did it as in the example 28:



        https://github.com/PrismLibrary/Prism-Samples-Wpf







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 22 '18 at 7:58

























        answered Nov 22 '18 at 7:52









        StrawberryshrubStrawberryshrub

        1,2462416




        1,2462416






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f51651464%2fhow-to-open-new-modal-dialog-using-prism-in-wpf%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            WxdZvVw
            zXjLO5OwwvarzqOyS

            Popular posts from this blog

            Costa Masnaga

            Fotorealismo

            Sidney Franklin