Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 4.0 Datagrid行按行展开在silverlight中单击_Silverlight 4.0 - Fatal编程技术网

Silverlight 4.0 Datagrid行按行展开在silverlight中单击

Silverlight 4.0 Datagrid行按行展开在silverlight中单击,silverlight-4.0,Silverlight 4.0,我有一个silverlight应用程序,其中我添加了一个切换按钮来扩展行。同时,我在同一行上有两个文本框和一个按钮。我的切换按钮工作正常,但当我单击文本框或按钮时,行会被扩展,这是不应该发生的。行必须在切换按钮单击时扩展。请在我出错时指导我。 我的切换按钮添加如下 .xaml 我需要在convert和ConvertBack中检查什么条件。或者我如何检查单击的对象是toggle button而不是其他按钮您可以在ToggleButton\u clicked事件中为ToggleButton\u加载的

我有一个silverlight应用程序,其中我添加了一个切换按钮来扩展行。同时,我在同一行上有两个文本框和一个按钮。我的切换按钮工作正常,但当我单击文本框或按钮时,行会被扩展,这是不应该发生的。行必须在切换按钮单击时扩展。请在我出错时指导我。 我的切换按钮添加如下 .xaml


我需要在convert和ConvertBack中检查什么条件。或者我如何检查单击的对象是toggle button而不是其他按钮

您可以在ToggleButton\u clicked事件中为ToggleButton\u加载的事件编写相同的代码,然后您不必检查单击了哪个按钮或文本框

<ToggleButton Style="{StaticResource PlusMinusToggleButtonStyle}"    Click="ToggleButton_Clicked" />

和.cs代码为

private void ToggleButton_Clicked(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
            });
    }
private void ToggleButton_单击(对象发送方,路由目标)
{
ToggleButton=发送方为ToggleButton;
DataGridRow行=button.FindAncestor();//自定义扩展名
行.SetBinding(DataGridRow.DetailsVisibilityProperty,new System.Windows.Data.Binding()
{
源=按钮,
路径=新属性路径(“已检查”),
转换器=新的VisibilityConverter(),
Mode=BindingMode.TwoWay
});
}

不工作。当我单击“其他”按钮时,将调用ConvertBack。然后展开该行。
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;

        }
    }
<ToggleButton Style="{StaticResource PlusMinusToggleButtonStyle}"    Click="ToggleButton_Clicked" />
private void ToggleButton_Clicked(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
            });
    }