Доброе утро, у меня проблема со страницей в C # на клиентском сервере.У меня есть страница, разделенная на 2 части: слева есть список объектов, а справа есть таблица, которая показывает детали выбранного объекта.Среди полей, показанных справа, есть ссылка на один или несколько файлов (связанных с объектом), которые пользователь может загрузить.Исходя из некоторых условий, я хочу запретить некоторым пользователям загружать эти файлы и разрешать им видеть только имена файлов.
В xaml я создал DataGrid, чтобы показать детали объектов, определенных следующим образом:
<DataGrid AutoGenerateColumns="False" Name="dgRPD" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" ItemsSource="{Binding ListRPD}" SelectedItem="{Binding SelectedRPD}" Height="Auto">
Код для столбца следующий:
<DataGridTemplateColumn Header="Files" Width="Auto" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<cc:FilePickerOnlyName CanChooseFile="False" FileName="{Binding Path=FileNameDoc}" FilePath="{Binding Path=PathDoc, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEnabled="{Binding hide, UpdateSourceTrigger=PropertyChanged}" DataContext="{Binding}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Моя идея заключалась в том, чтобы использовать свойство IsEnabled для достижения моей цели, и если для него установлено значение False, я получаю его.Поэтому я создал свойство «скрыть», определенное следующим образом:
private bool _hide;
public bool hide
{
get { return _hide; }
set
{
if (_hide != value)
{
_hide = value;
RaisePropertyChanged("hide");
}
}
}
Чтобы попробовать этот подход, я установил скрыть как ложное при инициализации ViewModel и каждый раз, когда я изменяю выбранный объект слевасторона страницы и вручную принудительно вызвать RaisePropertyChange для скрытия.У меня нет проблем с получением списка объектов или сведений об объектах, только когда я пытаюсь отключить поля.Я гуглил и искал любые вариации на пути привязки isEnabled, но ничего не получалось.Как я могу решить это?