Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.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
Android 我可以将Syncfusion SfTreeView的大小设置为动态吗?_Android_Xamarin_Xamarin.forms_Treeview_Syncfusion - Fatal编程技术网

Android 我可以将Syncfusion SfTreeView的大小设置为动态吗?

Android 我可以将Syncfusion SfTreeView的大小设置为动态吗?,android,xamarin,xamarin.forms,treeview,syncfusion,Android,Xamarin,Xamarin.forms,Treeview,Syncfusion,我把SfTreeView放在一个SfExpander中,树视图在它下面占据了很多空间。[在这里输入图像描述][1] 我试着把它放进一个格子里,把高度设为“自动”,但没有成功。 [1] : 我们已经检查了报告的查询“如何设置动态高度”。我们想通知您,TreeView将加载视图大小。如果要自定义TreeView的高度,可以根据项目大小为TreeView设置HeightRequest。请参考以下代码片段以实现您的要求 Xaml:对SfTreeView使用EventToCommand行为对QueryN

我把SfTreeView放在一个SfExpander中,树视图在它下面占据了很多空间。[在这里输入图像描述][1]

我试着把它放进一个格子里,把高度设为“自动”,但没有成功。 [1] :



我们已经检查了报告的查询“如何设置动态高度”。我们想通知您,TreeView将加载视图大小。如果要自定义TreeView的高度,可以根据项目大小为TreeView设置HeightRequest。请参考以下代码片段以实现您的要求

Xaml:对SfTreeView使用EventToCommand行为对QueryNodeSize事件使用命令。绑定TreeView的HeightRequest以基于节点更新TreeView高度

<syncfusion:SfTreeView x:Name="treeView"  
                               ItemHeight="40" 
                               HeightRequest="{Binding TreeViewHeight}" 
                               ChildPropertyName="SubFiles" 
                               ItemTemplateContextType="Node" 
                               AutoExpandMode="AllNodesExpanded" 
                               ItemsSource="{Binding ImageNodeInfo}" 
                               BackgroundColor="Beige"> 
            <syncfusion:SfTreeView.Behaviors> 
                <local:EventToCommandBehavior EventName="QueryNodeSize" Command="{Binding Path=BindingContext.QueryNodeSizeCommand, Source={x:Reference treeView}}"/> 
            </syncfusion:SfTreeView.Behaviors> 
            … 
</syncfusion:SfTreeView> 
 
ViewModel: Create Command with QueryNodeSizeEventArgs. 
private double treeViewHeight = -1; 
 
//Property to set TreeView height. 
public double TreeViewHeight 
{ 
    get { return treeViewHeight; } 
    set 
    { 
        treeViewHeight = value; 
        this.RaisedOnPropertyChanged("TreeViewHeight"); 
    } 
} 
 
//Command for QueryNodeSize event. 
public Command<QueryNodeSizeEventArgs> QueryNodeSizeCommand { get; set; } 
 
public FileManagerViewModel() 
{ 
    //Initialize the command. 
    QueryNodeSizeCommand = new Command<QueryNodeSizeEventArgs>(QueryNodeSizeMethod); 
} 
 
/// <summary> 
/// Command method to calculate the TreeView height. 
/// </summary> 
/// <param name="args">Argument which holds the information of the node.</param> 
private void QueryNodeSizeMethod(QueryNodeSizeEventArgs args) 
{ 
    var item = args.Node.Content as FileManager; 
    if (!item.IsHandled) 
    { 
        this.TreeViewHeight += args.Height; 
        item.IsHandled = true; 
    } 
} 

… 
ViewModel:使用QueryNodeSizeEventArgs创建命令。
私有双树视图=-1;
//属性设置树视图高度。
公共双树景
{ 
获取{return treeViewHeight;}
设置
{ 
treeViewHeight=值;
此项。提高的不动产变更(“TreeViewHeight”);
} 
} 
//QueryNodeSize事件的命令。
公共命令QueryNodeSizeCommand{get;set;}
公共文件管理器viewmodel()
{ 
//初始化命令。
QueryNodeSizeCommand=新命令(QueryNodeSizeMethod);
} 
///  
///用于计算树视图高度的命令方法。
///  
///保存节点信息的参数。
私有void QueryNodeSizeMethod(QueryNodeSizeEventArgs参数)
{ 
var item=args.Node.Content作为文件管理器;
如果(!item.IsHandled)
{ 
this.TreeViewHeight+=参数高度;
item.IsHandled=真;
} 
} 
根据你方要求,我方已附上可行的样品。您可以从以下链接找到它们

样本:

问候,,
SaiGanesh Sakthivel

向我们展示树视图的视图。我链接了一张图片,你能打开它吗?代码在哪里?我共享了代码,抱歉。
<syncfusion:SfTreeView x:Name="treeView"  
                               ItemHeight="40" 
                               HeightRequest="{Binding TreeViewHeight}" 
                               ChildPropertyName="SubFiles" 
                               ItemTemplateContextType="Node" 
                               AutoExpandMode="AllNodesExpanded" 
                               ItemsSource="{Binding ImageNodeInfo}" 
                               BackgroundColor="Beige"> 
            <syncfusion:SfTreeView.Behaviors> 
                <local:EventToCommandBehavior EventName="QueryNodeSize" Command="{Binding Path=BindingContext.QueryNodeSizeCommand, Source={x:Reference treeView}}"/> 
            </syncfusion:SfTreeView.Behaviors> 
            … 
</syncfusion:SfTreeView> 
 
ViewModel: Create Command with QueryNodeSizeEventArgs. 
private double treeViewHeight = -1; 
 
//Property to set TreeView height. 
public double TreeViewHeight 
{ 
    get { return treeViewHeight; } 
    set 
    { 
        treeViewHeight = value; 
        this.RaisedOnPropertyChanged("TreeViewHeight"); 
    } 
} 
 
//Command for QueryNodeSize event. 
public Command<QueryNodeSizeEventArgs> QueryNodeSizeCommand { get; set; } 
 
public FileManagerViewModel() 
{ 
    //Initialize the command. 
    QueryNodeSizeCommand = new Command<QueryNodeSizeEventArgs>(QueryNodeSizeMethod); 
} 
 
/// <summary> 
/// Command method to calculate the TreeView height. 
/// </summary> 
/// <param name="args">Argument which holds the information of the node.</param> 
private void QueryNodeSizeMethod(QueryNodeSizeEventArgs args) 
{ 
    var item = args.Node.Content as FileManager; 
    if (!item.IsHandled) 
    { 
        this.TreeViewHeight += args.Height; 
        item.IsHandled = true; 
    } 
}