gpt4 book ai didi

wpf - 多绑定(bind)转换器?

转载 作者:行者123 更新时间:2023-12-01 14:30:01 25 4
gpt4 key购买 nike

我正在尝试为导航模型编写一个多绑定(bind)转换器,当从两个列表框中选择任何列表框项时,我将页面加载到框架中。同时,我需要能够使用导航类中的后退/前进按钮进行导航,并且能够在其 UriSource 加载到框架中时显示处于选定状态的 listboxitem。我拥有的转换器可以从框架中的两个源列表框更新 urisource,但不能在选定状态下切换 listboxitem。我在转换器的 ConvertBack 部分将 listboxitem 切换为选定状态。我做错了什么,我总是在构建时出错。请让我知道是否有可能实现我想要做的事情。提前谢谢你。

下面是MultiBindConverter的代码:

 public class MultiBindConverter : IMultiValueConverter
{
#region IMultiValueConverter Members

public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (values[0] != null)
{
if (values[1] != null)
{
return new Uri(values[1].ToString(), UriKind.RelativeOrAbsolute);
}
return new Uri(values[0].ToString(), UriKind.RelativeOrAbsolute);
}
return null;
}

public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null)
{
var uri = (Uri)value;
var uriString = uri.OriginalString;

if (uri.OriginalString.Contains(";component/"))
{
uriString = uriString.Substring(uriString.IndexOf("/") + 1);
}
return new object[] { uriString, uriString };
}
}
}

XAML:

<Frame Grid.Column="2" x:Name="ContentFrame" JournalOwnership="OwnsJournal" NavigationUIVisibility="Visible"> 
<Frame.Source>
<MultiBinding Converter="{StaticResource MultiBindConverter}">
<Binding Path="SelectedValue" ElementName="Nav_ListBox"/>
<Binding Path="SelectedValue" ElementName="SublevelListbox"/>
</MultiBinding>
</Frame.Source>
</Frame>

最佳答案

您没有实现 IMultiValueConverter 接口(interface)。 ConvertBack 的签名是:

public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)

它与 Convert 完全相反,它接收一个数组并输出一个值,因此它需要接收该单个值并输出一个值数组。在这种情况下,ConvertBack 的传入值将是 Frame.Source,输出将是 2 个 SelectedValue 属性。

关于wpf - 多绑定(bind)转换器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4002483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com