modern-ui ListPages -使用c#填充链接,不使用MVVM

本文关键字:MVVM 链接 填充 ListPages 使用 modern-ui | 更新日期: 2023-09-27 18:12:47

创建一个新的listPage时,xaml代码如下:

<Grid Style="{StaticResource ContentRoot}">
<!-- TODO: set @SelectedSource -->
<mui:ModernTab Layout="List">
<mui:ModernTab.Links>
<!-- TODO: set @Source -->
<mui:Link DisplayName="Item 1" />
<mui:Link DisplayName="Item 2" />
 </mui:ModernTab.Links>
</mui:ModernTab>
 </Grid>

问题是我希望能够创建Item1, Item2..在c#中编程。这是链接的这里应该从一个列表填充,我将动态添加。我没有使用MVVM和寻找答案。如有任何建议,不胜感激。

这是我目前在Xaml

中尝试过的
<mui:ModernTab Layout="List" Links="{Binding Path=IPList}">
用c#

public partial class ListOfIP : UserControl
    {
        public LinkCollection IPList { get; private set; }
        public ListOfIP()
        {
            InitializeComponent();
            IPList = new LinkCollection();
            testMethod(IPList);
        }
        public void testMethod(LinkCollection IPList)
        {
            IPList.Add(new Link() { DisplayName = "IP1" });
            IPList.Add(new Link() { DisplayName = "IP2" });
            IPList.Add(new Link() { DisplayName = "IP3" });
        }
    }

抱歉,如果这是一个愚蠢的尝试,但我仍然在学习WPF绑定。

modern-ui ListPages -使用c#填充链接,不使用MVVM

如果您要绑定的数据在用户控件的代码隐藏中,则将用户控件的DataContext设置为代码隐藏类:

public partial class ListOfIP : UserControl
{
    public LinkCollection IPList { get; private set; }
    public ListOfIP()
    {
        DataContext = this;
        InitializeComponent();
        IPList = new LinkCollection();
        testMethod(IPList);
    }
    public void testMethod(LinkCollection IPList)
    {
        IPList.Add(new Link() { DisplayName = "IP1" });
        IPList.Add(new Link() { DisplayName = "IP2" });
        IPList.Add(new Link() { DisplayName = "IP3" });
    }
}

XAML正确:

<mui:ModernTab Layout="List" Links="{Binding Path=IPList}">

如果问题是你试图直接设置ModernWindow控件的内容到一些UI控件。这将不适用于ModernWindow,因为它有一个内置的导航系统。您需要将ModernWindowContentSource属性设置为指向UserControl的URI。

<mui:ModernWindow x:Class="ModernUITest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mui="http://firstfloorsoftware.com/ModernUI"
        Title="MainWindow" Height="350" Width="525"
        ContentSource="/Pages/Home.xaml">   
</mui:ModernWindow>

页面/Home.xaml:

<UserControl x:Class="ModernUITest.Pages.Home"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mui="http://firstfloorsoftware.com/ModernUI">
    <Grid>
        <mui:ModernTab Layout="List" Links="{Binding Path=IPList}"/>
    </Grid>
</UserControl>

当我从

public ListOfIP()
{
       DataContext = this;
       InitializeComponent();
       IPList = new LinkCollection();
       testMethod(IPList);
}

public ListOfIP()
{
        DataContext = this;
        IPList = new LinkCollection();
        testMethod(IPList); 
        InitializeComponent();
}

,它工作得很好;)