Silverlight:基于列表计数选择控件
我正在将Telerik RadGridView绑定到Silverlight:基于列表计数选择控件,silverlight,xaml,telerik,Silverlight,Xaml,Telerik,我正在将Telerik RadGridView绑定到列表myList=新列表。但是如果myList.Count==0(列表为空;),我想向用户显示另一个控件 我知道我可以使用一些可见性转换器,但我更喜欢用XAML实现这一点 谢谢如果您切换到ObservableCollection,您可以使用VisibilityConverter将其绑定到您的myList.Count所有XAML中。如果由于在codebehind中设置ItemsSource而出现问题,您可能希望将其作为资源或切换到更MVVM的内容
列表myList=新列表
。但是如果myList.Count==0
(列表为空;),我想向用户显示另一个控件
我知道我可以使用一些可见性转换器,但我更喜欢用XAML实现这一点
谢谢如果您切换到
ObservableCollection
,您可以使用VisibilityConverter将其绑定到您的myList.Count
所有XAML中。如果由于在codebehind中设置ItemsSource而出现问题,您可能希望将其作为资源或切换到更MVVM的内容 如果切换到ObservableCollection
,您可以使用VisibilityConverter将其绑定到您的myList.Count
所有XAML中。如果由于在codebehind中设置ItemsSource而出现问题,您可能希望将其作为资源或切换到更MVVM的内容 我认为值转换器是您在这里的唯一选择:)
然而,我发现,如果你能正确地构造它们,值转换器是很棒的
以下是一些很好的工具:
<Grid>
<telerik:RadGridView ItemsSource="{Binding myList}">
<telerik:RadGridView.Visibility>
<Binding Path="myList">
<Binding.Converter>
<converters:SequentialValueConverter>
<converters:IsEmptyConverter />
<converters:BooleanToVisibilityConverter TrueValue="Collapsed" FalseValue="Visible" />
</converters:SequentialValueConverter>
</Binding.Converter>
</Binding>
</telerik:RadGridView.Visibility>
</telerik:RadGridView>
<YourControl>
<YourControl.Visibility>
<Binding Path="myList">
<Binding.Converter>
<converters:SequentialValueConverter>
<converters:IsEmptyConverter />
<converters:BooleanToVisibilityConverter TrueValue="Visible" FalseValue="Collapsed" />
</converters:SequentialValueConverter>
</Binding.Converter>
</Binding>
</YourControl.Visibility>
</YourControl>
</Grid>
此外,正如Jason所说,myList需要是一个可观察的集合,以便gui在更改时得到通知
希望有帮助 我认为值转换器是您在这里的唯一选择:) 然而,我发现,如果你能正确地构造它们,值转换器是很棒的 以下是一些很好的工具:
<Grid>
<telerik:RadGridView ItemsSource="{Binding myList}">
<telerik:RadGridView.Visibility>
<Binding Path="myList">
<Binding.Converter>
<converters:SequentialValueConverter>
<converters:IsEmptyConverter />
<converters:BooleanToVisibilityConverter TrueValue="Collapsed" FalseValue="Visible" />
</converters:SequentialValueConverter>
</Binding.Converter>
</Binding>
</telerik:RadGridView.Visibility>
</telerik:RadGridView>
<YourControl>
<YourControl.Visibility>
<Binding Path="myList">
<Binding.Converter>
<converters:SequentialValueConverter>
<converters:IsEmptyConverter />
<converters:BooleanToVisibilityConverter TrueValue="Visible" FalseValue="Collapsed" />
</converters:SequentialValueConverter>
</Binding.Converter>
</Binding>
</YourControl.Visibility>
</YourControl>
</Grid>
此外,正如Jason所说,myList需要是一个可观察的集合,以便gui在更改时得到通知
希望有帮助 我使用的是MVVM,没有代码隐藏。我想在myList为空时切换控件,以便更好地与用户交互。我想在myList为空时切换控件,以便更好地与用户交互。事实上,我使用的是CollectionViewSource,其中源是myList。在我的应用程序环境中工作得很好。所以我想我将实现Those转换器。事实上,我使用的是CollectionViewSource,其中的源代码是myList。在我的应用程序环境中工作得很好。所以我想我会实现这些转换器。