我強烈建議您使用元素綁定和轉換器來轉換02x09的值。所以你的一個文本框會有第一個halp,第二個會有另一半。
這裏是一個示例代碼。爲你。
<Window x:Class="WPFTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converters="clr-namespace:WPFTest"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<converters:MyConverter x:Key="converter"/>
</Window.Resources>
<Grid>
<ListBox ItemsSource="{Binding Items}" Margin="0,0,360,0" x:Name="list">
</ListBox>
<TextBox Text="{Binding Path=SelectedValue,Converter={StaticResource converter},ConverterParameter=0, ElementName=list}" Height="25" Width="100"/>
<TextBox Text="{Binding Path=SelectedValue,Converter={StaticResource converter}, ConverterParameter=1,ElementName=list}" Height="25" Width="100" Margin="208,189,209,106"/>
</Grid>
</Window>
public partial class MainWindow : Window
{
public List<string> Items { get; set; }
public MainWindow()
{
InitializeComponent();
if (Items == null)
Items = new List<string>();
Random ran = new Random();
for (int i = 0; i < 10; i++)
{
Items.Add(ran.Next(1, 5) + "x" + ran.Next(5, 10));
}
this.DataContext = this;
}
}
public class MyConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return "Null";
var values = value.ToString().Split(new string[] { "x" }, StringSplitOptions.None);
int x = 0;
if (int.TryParse(parameter.ToString(), out x))
{
return values[x].ToString();
}
return "N/A";
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
來源
2013-03-12 19:34:20
JSJ
爲什麼不在你的類中創建第三個字符串屬性,它組合了這兩個值並將第三項綁定到任何你想要的位置?或者我不理解,因爲我應該? – 2013-03-12 19:14:37
請解釋三個屬性的想法:我可以有三個屬性:row,col和name,其中name只不過是「rowxcol」。我將如何正確地將所有這些綁定在一起?列表框將有一個名稱列表(即「rowxcol」),行文本框將被綁定到行屬性,而列文本框將被綁定到列屬性。那麼如何實際將listbox的SelectedItem屬性的行部分和Listbox的SelectedItem屬性的列部分綁定到兩個獨立的文本框? – kformeck 2013-03-12 19:20:41
「TextBox」行將被綁定到行屬性; 「TextBox」列將被綁定到列屬性;並且'ListBox'將被綁定到組合的屬性。在屬性設置器中添加代碼以更新其他屬性併爲每個屬性引發相關的「PropertyChangedEvent」。 – 2013-03-12 19:26:02