我有一个列表框,它绑定到一个货币列表项目。货币是一类
public class Currency
{
public string code { get; set; }
public string countryName { get; set; }
public string imgUrl { get; set; }
public string infoLink { get; set;} }
}
列表框绑定到货币对象列表,此列表框中的每个项目都是图像和文本块的堆栈面
我想将SelectedItem属性绑定到Code-behind中的属性以跟上
<ListBox Name="sCurrencyLB" Margin="10,0,0,0" Width="Auto" Height="180"
IsEnabled="{Binding IsChecked, ElementName=LiveTilesToggleBtn}"
SelectedItem="{Binding STileCurrency, Mode=TwoWay,
Source={StaticResource livetilemanager}}"
ItemsSource="{Binding SCurrencyList}" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
<TextBlock Name="scountryNametb" Width="50" Text="{Binding code}"
VerticalAlignment="Center" HorizontalAlignment="Right"/>
<Image Source="{Binding imgUrl}" Height="50" Width="50"
HorizontalAlignment="Left" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
属于列表框中所选项目的属性的代码
private Currency sTileCurrency;
public Currency STileCurrency
{
get
{
return appSettings.GetValueorDefault<Currency>("STileCurrency", null);
}
set
{
if (appSettings.AddOrUpdateValue("STileCurrency", value))
{
settings.Save();
}
}
}
注意:我创建了一个包含XAML
内属性的Class实例答案 0 :(得分:0)
按照你需要的MVVM模式(漂亮)
试试这个:
在您的窗口承包商中befor InitializeComponent(); 添加:
this.DataContext = this;
所以绑定 SelectedItem 就像这样
SelectedItem="{Binding STileCurrency,Mode=TwoWay}
答案 1 :(得分:0)
如果这里有真人管家,你应该有什么工作:
Source={StaticResource livetilemanager}}
上面有一个属性:
SCurrencyList
是吗?如果SCurrencyList是代码隐藏中的属性 - 因为代码隐藏是默认的DataContext - 您不需要为SelectedItem绑定指定Source。
顺便看看绑定错误,请在调试时关注VS中的调试窗口。
顺便提一下,在C#中,通常用大写第一个字母命名属性,例如:
public string Code {get;set;}