我开始使用Caliburn.Micro在WP 7.1上编程应用程序。我的起始视图是一个记录窗口,其中包含登录和传递文本框以及具有登录操作的按钮。现在我想在顶部显示进度条为不确定,并将文本框设置为readOnly。我一直在网上搜索,发现只是没有令我满意的解决方案。我正在考虑这样的解决方案:
有人解决了这个问题吗?这些解决方案都没有令我满意。
答案 0 :(得分:0)
有几种方法 - 取决于你是否想要基于常规和每次控制
如果没有约定,您可以使用繁忙的属性,例如
class SomeViewModel : Screen // or whatever
{
public bool IsBusy
{
get { // getter code
}
set { // setter code, calling notifypropertychanged
}
}
然后在你的控制中
<UserControl>
<Grid>
<TextBox>Hello World</TextBox>
<Border Background="#AAFFFFFF"> <!-- Semitransparent overlay -->
<ProgressBar IsIndeterminate="true" Visibility="{Binding IsBusy, Converter={StaticResource BooleanToVisibilityConverter}" />
</Border>
</Grid>
</UserControl>
您的转换器可能如下所示:
class BooleanToVisibilityConverter : IValueConverter
{
public void Convert(object value, blah blah blah...)
{
if(value is bool)
{
if((bool)value) return Visibility.Visible;
return Visibility.Collapsed;
}
return null;
}
}
这样,您可以在控件上发生事情时覆盖进度条,这样用户就无法进行交互。
你可能需要调整以获得最佳效果,因为我没有测试过任何一个:P
您甚至可以将文本框上的IsReadOnly
绑定到IsBusy
属性。这当然是假设您不介意使用非传统方法,并且它都可以在Windows Phone 7上运行:)