Windows 8商店应用:如何动态更改ListViewItem中的绑定

时间:2013-08-23 15:41:24

标签: c# xaml windows-8 microsoft-metro

我为listView创建了一个公共控件,我想更改listView中每个项目的内容。像DisplayMemberPath这样的东西但是我需要发送两个对于任何一个屏幕都不相同的值。

<ListView.ItemTemplate>
    <DataTemplate>
       <Grid> 
         <TextBlock Text="{Binding Property1}"/>
         <TextBlock Text="{Binding Setter2}"/>
       </Grid>
     </DataTemplate>
</ListView.ItemTemplate>

在下一个屏幕上我想要这样的东西

        <TextBlock Text="{Binding SuperNewProperty}"/>
         <TextBlock Text="{Binding Setter2xyz}"/>

如何创建具有变量绑定的控件,如:

<TextBlock Text="{Binding {Binding MySpecificValue}"/>

这显然是一个愚蠢的事情,但它最能描述我想做的事情。

完成:

好的,我有一些模块Employes.xaml 在哪里调用,我的控件有一些依赖属性作为itemSource和prop1,prop2(我想同时使用它们,如显示成员路径)。

ItemSource是来自DB的IEnumerable,包含2列:employeName,employNumber,这将显示在listView上

<control:listViewMyControl itemSource ="{Binding employes}" prop1="employeName" prop2="employNumber" />

但是当我有模块Cities.xaml 我需要将prop1,prop2绑定到另一个列名,cityName,cityRank或其他任何

<control:listViewMyControl itemSource ="{Binding cities}" prop1="cityName" prop2="cityRank " />

当我想为listview显示两种不同类型的listviewitems时会出现问题

   // my user control listViewMyControl 
    <ListView x:Name="listView1">
    <ListView.ItemTemplate>
        <DataTemplate>
           <Grid> 
             <TextBlock Text="{Binding employeName}"/>
             <TextBlock Text="{Binding employeNumber}"/>

            <TextBlock Text="{Binding cityName}"/>
             <TextBlock Text="{Binding cityRank}"/>

   // but i want only something like display member path for two labels, input modules may be more (employes, cities, cars, stations, .....) something like this
    <TextBlock Text="{Binding {Binding MySpecificValue}"/>
    <TextBlock Text="{Binding {Binding MySpecificValue2}"/> 
           </Grid>
         </DataTemplate>
    </ListView.ItemTemplate>
    </ListView>

提前致谢。

0 个答案:

没有答案