Кажется, я не могу заставить работать конвертер видимости. Я думаю, проблема в том, что я устанавливаю соответствующее свойство в конструкторе, поэтому оно не подбирает его по строке. Код ниже, какие-либо предложения относительно того, как я могу это исправить?
MainWindowViewModel: (это главная страница; нажатие кнопки открывает второе окно)
var newWindow = new SecondaryWindow
{
Title = title,
DataContext = new SecondaryWindowViewModel{MyData = data, ShowAdditionalColumns = false}
};
newWindow.Show();
Дополнительное окно: вот соответствующий XAML:
<Window.Resources>
<myApp:DataGridVisibilityConverter x:Key="gridVisibilityConverter" />
</Window.Resources>
<DataGrid ItemsSource="{Binding Path=MyData}" AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Print" Binding="{Binding Path=IsSelected}"/>
<DataGridTextColumn Header="FirstName" Binding="{Binding Path=FirstName}" IsReadOnly="True"/>
<DataGridTextColumn Header="LastName" Binding="{Binding Path=LastName}" IsReadOnly="True"/>
<DataGridTextColumn Header="Lines" Binding="{Binding Path=TotalLines}" IsReadOnly="True" Visibility="{Binding Path=ShowAdditionalColumns, Converter={StaticResource gridVisibilityConverter}}"/>
И вторичный код ViewModel:
private bool showAdditionalColumns;
public bool ShowAdditionalColumns
{
get { return showAdditionalColumns; }
set
{
showAdditionalColumns= value;
NotifyPropertyChanged(() => ShowAdditionalColumns);
}
}
Вот преобразователь; довольно стандартные вещи здесь. Я поставил точку останова в методе convert; и он никогда не попадал:
[ValueConversion(typeof(bool), typeof(Visibility))]
public class DataGridVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var booleanValue = (bool)value;
return booleanValue ? Visibility.Visible : Visibility.Hidden;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
DataGridTextColumn
связываются правильно? - person Mat J   schedule 12.02.2014NotifyPropertyChanged(() => ShowAdditionalColumns);
Что он делает.. Покажите реализациюPropertyChanged
.. - person Sankarann   schedule 12.02.2014