我在数据模板中有文本块,其中我通过绑定显示数据。最初我需要在textblock中显示最多三行的数据。如需更多数据,请查看更多选项点按,以扩展文本块。
这件事已经完成了。我面临的主要问题是如果数据大小不超过三行,我不必再看看更多选项。
如何知道我的数据只消耗1或2行文本块
提前致谢
答案 0 :(得分:0)
考虑您已将视图模型绑定到模板
public class ViewModel : INotifyPropertyChanged
{
public string MyBoundText { get { .. }; set { .. }; }
]
您可以创建另一个属性:
public int LinesNo => this.MyBoundText.Split('\n').Length;
//remember about null-check and other edge-cases
我假设你的xaml在某个地方:
<TextBox Text="{Binding MyBoundText}"></TextBox>
所以,创建自己的转换器:
class Button1VisibilityConverter : IValueConverter
{
public object Convert(object value, Type targettype, object parameter, System.Globalization.CultureInfo culture)
{
int mode = (int)value;
if (mode <= (int)parameter)
return System.Windows.Visibility.Collapsed;
else
return System.Windows.Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
然后用你的按钮绑定它:
<Button Content="Show more...">
<Button.Visibillity>
<Binding Path="LinesNo "
Converter="{StaticResource Button1VisibilityConverter }">
<Binding.ConverterParameter>
<sys:Int32>3</sys:Int32>
</Binding.ConverterParameter>
</Binding>
</Button.Visibillity>
</Button>
(请记住以前将转换器置为静态resoruce。)
警告:未经测试,只是想法/提示。