I have a WinForms project in which I am trying to implement the Passive View MVP pattern (meaning no business logic in my Views). Each form is a concrete View with an IView interface to which a Presenter is connected. I do think i should handle some UI related logic in my View because I am otherwise adding needless complexity to try to handle this in the Presenter. Therefore, I have created a simple function in my View class which validates the result from the file dialog. I did not put this logic in the event handler of the button press because I wanted to avoid duplicate code since I have three of these buttons.Please let me know if you think this is an appropriate way to implement this. I have posted the function, and the event (I have three button_Click events that each use this function) that utilizes this function below.Button event that uses the GetFileName function:// Gets the filename and fires the compliance standard adding event.private void newComplianceStandardButton_Click(object sender, EventArgs e){    string fileName = GetFileName();    if (fileName != null)    {        AddingComplianceStandard?.Invoke(this, fileName);    }    Close();}Function that checks the dialog result and returns the filename:// Opens the openfile dialog and checks the result. If the result is OK, the form is closed and the filename is returned.public string GetFileName(){    DialogResult result = openFileDialog1.ShowDialog();    string fileName = openFileDialog1.FileName;    if (result == DialogResult.OK &&        (Path.GetExtension(openFileDialog1.FileName) == .txt || Path.GetExtension(openFileDialog1.FileName) == .csv))    {        Close();        return fileName;    }    else    {        MessageBox.Show(You have selected a file with an illegal extension. Please try again and select a *.txt or a *.csv file);        return null;    }}
Handling an openFileDialog in the View of my MVP WinForms project
c#;design patterns;winforms;mvp