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