WPF显示带参数的方法的成员路径

时间:2012-11-17 11:44:27

标签: c# wpf

我有一个WPF ListBox,它绑定到一些元素(我不能自定义)。 绑定本身也是一个密封的类。

该元素有一个ToString,它接受CultureInfo参数。 我想绑定到该特定表示 - 通过传递该参数(我将从正在运行的线程中获取它)。 无论如何都要指定绑定来显示特定的表示吗?

XAML:

<ListBox Height="212" HorizontalAlignment="Left" Margin="6,6,0,0" 
    Name="listBoxTriggers" VerticalAlignment="Top" Width="183" />

项目来源:

listBoxTriggers.ItemsSource = _triggers

后面的代码(我想调用的方法)

trigger.ToString(cultureInfo);

1 个答案:

答案 0 :(得分:1)

注意:在this link处使用转换器是一个不错的选择。

如果我理解正确,您希望ListBox使用特定的文化显示ToString()。虽然这可能是可能的(参见上面提到的链接),但解决方法是使用DTO来保存触发器的ID和您正在查找的ToString()表示。

public class TriggerDto
{
    public int TriggerId { get; set; }
    public string TriggerName { get; set; }
}

创建一个新的List,然后循环遍历所有触发器,添加新的TriggerDto对象。

List<TriggerDto> triggerDtos = new List<TriggerDto>();

foreach (Trigger trigger in _triggers)
{
    triggerDtos.Add(new TriggerDto() { Id = trigger.Id, TriggerName = trigger.ToString(cultureInfo) });
}

this.TriggerDtos = triggerDtos;

将绑定设置为TriggerDtos。

当用户选择TriggerDto时,您只需要使用其ID来获取您想要使用的真实Trigger对象。

免责声明:此处可能存在拼写错误。我直接在答案中键入了代码,而不是在Visual Studio中。