我是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;
};