如何将wpf datagrid scrollviewer visiblity绑定到按钮可见性?

时间:2013-03-12 12:01:15

标签: wpf xaml wpfdatagrid

<Window x:Class="WPfDataGrid.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="450" Width="525" Loaded="Window_Loaded">
    <Grid>
            <DataGrid x:Name="dgrdEmployee" Width="300" Height="300" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"/>
            <Button Content="Navigation" x:Name="BtnNavigation" Width="90" Height="40" Margin="204,336,209,-15" />
    </Grid>
</Window>

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

    }

    public class Employees
    {
        public string Name { get; set; }
        public string Id { get; set; }
        public string Address { get; set; }
    }

    public List<Employees> EmployeeList()
    {
        XDocument employees = XDocument.Load(@"C:\Employees.xml");
        List<Employees> employee = (from em in employees.Descendants("Employee")
                                    select new Employees
                                    {
                                        Name = em.Element("Name").Value,
                                        Id = em.Element("Id").Value,
                                        Address = em.Element("Address").Value
                                    }).ToList();
        return employee;
    }
private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        dgrdEmployee.ItemsSource = EmployeeList();
    }
} 

使用上面的代码,我得到以下结果。

enter image description here

如果数据网格滚动查看器可见,则按钮应该可见,否则按钮应该折叠。这样做有什么变化吗?

我尝试过类似下面的内容。但这对我来说没有意义。

<Button Content="Navigation" x:Name="BtnNavigation" Visibility="{Binding Visibility, ElementName=dgrdEmployee.ScrollViewer}" Width="90" Height="40" Margin="204,336,209,-15" />

1 个答案:

答案 0 :(得分:-1)

ScrollViewer始终可见。 ScrollViewer将根据显示的数据显示或隐藏其滚动条。

假设您可以访问VerticalScrollBarVisiblity的{​​{1}}和HorizontalScrollBarVisiblity属性,您可以在这些属性和按钮{{1}之间创建MultiBinding属性。您可能还需要创建value converter,因为滚动条可见性属性使用不同的类型(除标准可见性值外还包含ScrollViewer值)。