[英]Integrate different xaml pages with mainWindow.xaml
我不确定我是否朝着正确的方向前进。 我想在应用程序的不同页面上重用页面的某些部分,所以我在用户控件wpf xaml上开发了这些页面。请您提供帮助或建议一些示例,说明如何将不同的xaml页面集成到mainWindow.xaml以便运行我的应用程序。
所以我在用户控件wpf xaml上开发了这些页面
这是一种设计理念,将所有这些用户控件放在页面上的公共框架/位置中,然后在VM中创建一个枚举,该枚举将定义与每个控件直接相关的页面的不同状态。
将所有控件可见性绑定到VM上的属性(该属性标识当前状态)(根据上述状态枚举),然后使用转换器隐藏或显示控件。
这是一个示例,将枚举放在VM类上。
public enum Operations
{
Authentication = -1,
DisplayResults = 0,
EditData,
...
}
创建一个属性,该属性将定义VM上的当前状态
public Operations CurrentState
{
get { return _CurrentState; }
set { _CurrentState = value; PropertyChanged(); }
}
然后在控件上绑定到该状态,还要传入文本以标识控件
<controls:Authentication
Visibility="{Binding CurrentState,
ConverterParameter=Authentication,
Converter={StaticResource StateToVisiblity}}"/>
然后在我们的转换器参考中,枚举并根据当前状态确定是否应显示控件:
public class OperationStateToVisiblity : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (value != null) &&
(parameter != null) &&
value.ToString().Equals(parameter.ToString())
? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
这样,仅在状态更改且该控件已定义为特定枚举时才显示每个控件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.