【发布时间】:2013-06-29 14:09:46
【问题描述】:
我想在定义 DataGrid 的宽度时包含 VerticalScrollbar 的大小。 到目前为止,我写了一个转换器:
[ValueConversion(typeof(double), typeof(double))]
public class VerticalScrollbarConverter : IValueConverter
{
#region IValueConverter Member
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is double)
return (double)value + SystemParameters.VerticalScrollBarWidth;
else
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
我在 xaml 命名空间中包含了我的转换器:
xmlns:Core="clr-namespace:Core;assembly=SMS_Core"
我将转换器定义为(窗口)资源:
<Window.Resources>
<Core:VerticalScrollbarConverter x:Key="VerticalScrollbarConverter"/>
</Window.Resources>
由于我所有的 DataGrid.Columns 都有一个固定值,我知道我需要传递的值。 如何在 xaml 中告诉我的 GridView Width 属性使用转换器?
我知道我的问题很基本。如您所知,我对 WPF 很陌生。
提前感谢您的每一个提示。如果您需要更多信息或上下文,请尽管询问。
【问题讨论】:
-
你可以只在Binding中使用StaticResource关键字,例如:
Width="{Binding TheWidth, Converter={StaticResource VerticalScrollbarConverter}}" -
是的!这正是我所需要的!非常感谢!
-
没问题,很高兴为您提供帮助:)