У меня есть приложение Silverlight, в котором я добавил одну кнопку-переключатель для раскрытия строки. В то же время у меня есть 2 текстовых поля и 1 кнопка на одной строке. Моя кнопка переключения работает нормально, но когда я нажимаю на текстовое поле или кнопки, строки раскрываются что не должно происходить. Строка должна быть развернута только при нажатии кнопки переключения. PLZ, направьте меня, когда я ошибаюсь.
моя кнопка переключения добавлена как показано ниже
.xaml
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ToggleButton Style="{StaticResource PlusMinusToggleButtonStyle}" Loaded="ToggleButton_Loaded" />
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
и код .cs как показано ниже
private void ToggleButton_Loaded(object sender, RoutedEventArgs e)
{
ToggleButton button = sender as ToggleButton;
DataGridRow row = button.FindAncestor<DataGridRow>(); //Custom Extension
row.SetBinding(DataGridRow.DetailsVisibilityProperty, new System.Windows.Data.Binding()
{
Source = button,
Path = new PropertyPath("IsChecked"),
Converter = new VisibilityConverter(),
Mode = BindingMode.TwoWay
});
}
и интерфейс IValueConverter реализован, как показано ниже
public class VisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if ((bool)value) return Visibility.Visible;
else return Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if ((Visibility)value == Visibility.Visible)
return true;
else return false;
}
}
Какое условие мне нужно проверить при конвертировании и ConvertBack.И как я могу проверить, что нажатый объект - это кнопка переключения, а не другая кнопка