当用户按下按钮时,我想显示一个新的UserControl。我已经创建了一个EnumVisibilityConverter,并希望设置枚举,以便在按下按钮时显示一个名为login的不同用户控件。到目前为止,我已经将enum属性重新分配给Login enum类型,但是如何让它显示新的UserControl
枚举可见性转换程序
public class EnumToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value == null || parameter == null || !(value is Enum))
{
return Visibility.Collapsed;
}
string currentState = value.ToString();
string stateString = parameter.ToString();
bool found = false;
foreach(string state in stateString.Split(','))
{
found = (currentState == state.Trim());
if(found)
break;
}
return found ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
寄存器.Xaml
<Window.Resources>
<vm:RegisterViewModel x:Key="RegisterViewModelObject" />
<enum:EnumToVisibilityConverter x:Key="enumToVisibility" />
</Window.Resources>
<StackPanel Background="{StaticResource LightBlueBrush}"
Visibility="{Binding CurrentResponse,
Converter={StaticResource enumToVisibility},
ConverterParameter='Register'}">
<Button Content="I Already Have An Account"
Margin="230 0 230 0"
Style="{StaticResource ChangeLoginPage}" />
</StackPanel>
属性(枚举)
public enum ResponseState
{
Login,
Register
}