DataGrid WPF中的按钮可见性

时间:2014-10-20 12:08:07

标签: c# wpf mvvm wpfdatagrid

我是WPF和MVVM的新手,遇到了问题。我有一个DataGrid,当一个成员添加到系统时,它将被填充。我有一个允许用户登录的按钮 - 我需要默认隐藏此按钮,只有在添加成员后才会出现。我一直在阅读相关来源的工作原理,但是说实话我有点困惑,任何帮助都会非常受欢迎。

视图模型

 private bool _showButton;

    public bool ShowButton
    {
        get { return _showButton; }
        set
        {
            _showButton = value;
            RaisePropertyChanged("ShowButton");
        }
    } 

查看

 <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Persons}" 
                  SelectedItem="{Binding Path=SelectedPerson}"
                  Margin="0,23,0,0" Width="500" >
            <DataGrid.Columns>
               <DataGridTextColumn Header="Full Name" Binding="{Binding FullName, Mode=OneWay}"/>
                <DataGridTextColumn Header="Email" Binding="{Binding Email}"/>
                <DataGridTextColumn Header="Address" Binding="{Binding AddressLine1}"/>
                <DataGridTextColumn Header="Contact" Binding="{Binding ContactNumber}"/>
                <DataGridTemplateColumn>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <mui:ModernButton Command="{Binding Path= DataContext.NavigateToItemViewCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}" 
                                              Visibility="{Binding ShowButton,Converter={StaticResource BooleanToVisibilityConverter},FallbackValue=Hidden}"   
                                              CommandParameter="{Binding}">Log User</mui:ModernButton>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>  

非常感谢任何帮助。

编辑----我如何更新ShowButton道具。将一个人添加到Observable Collection后,我将ShowButton bool设置为true。

Person person = personRepo.Get(member.PersonId);
var tmp = AddPersons(person);
foreach (var item in tmp)
{
   Persons.Add(item);
}
 ShowButton = true;

编辑 - 已修复 - 将showbutton属性添加到我的人员模型并按预期工作。

Person person = personRepo.Get(member.PersonId);
var tmp = AddPersons(person);
foreach (var item in tmp)
{
 Persons.Add(item);
 item.ShowButton = true;
};

0 个答案:

没有答案
相关问题